Помогите разделить URL адрес на составляющие части.
Добрый день! Привет всем!
Помогите решить задание. Зарание спасибо! Пользователь в ответ на запрос приложения вводит URL адрес. Нужно разделить данный адрес на составляющие и вывести результат. Например, пользователь вводит адрес вида http://www.ufa.com.ua/utilites/hdd/out.php?sort=2. После этого ему выводится следующая информация о данной адресу: протокол - http: хост - www.ufa.com.ua путь - / utilites / hdd / имя файла - out.php строка запроса - sort = 2
<html>
<head>
<title>URL</title>
</head>
<body>
<script type="text/javascript">
var URL = new Array("http://www.ufa.com.ua/utilites/hdd/out.php?sort=2");
var titles = new Array("Protokol", "host", "url", "name file", "ryadok zaputu");
var urls = new Array("http://", "www.ufa.com.ua "," /utilites/hdd/", "out.php ", "sort=2");
for (var i=0; i<titles.length; i++) {
document.write (titles[i].bold() + ": " +urls[i].link(urls[i])+ "<br /> ");
}
//var str="http://www.ufa.com.ua/utilites/hdd/out.php?sort=2"
//slice
var str=prompt("Enter URL:");
if (start = str.slice(0,7) || str.split("://")) {
document.write("<br/>Protokol: "+ str.slice(0,7))
document.write("<br />")
}
if (start = str.slice(7,10) || str.split(".")) {
document.write("Host: " + str.slice(7,10))
document.write("<br />")
}
if (start = str.slice(10,15) || str.split("/")) {
document.write("URL: " + str.slice(10,15))
document.write("<br />")
}
if (start = str.slice(15,20) || str.split("/")) {
document.write("Index Name file: " + str.slice(15,20))
document.write("<br />")
}
/* document.write("Index of last ryadok zaputu sort=2: " + str.lastIndexOf("sort=2"))
document.write("<br/> <br />")
*/
/*var p = /^(\w+:\/\/)(([a-z0-9\-]+\.)+[a-z]{2,6})([a-z0-9\-\/]*\/)*([a-z0-9\-]+\.[a-z]+)/i;
var str = prompt("Запрос на ввод данных")
var Str = "http://www.mysite.ru/folder1/folder2/forder3/file.html";
p.exec(Str); //exec - Виконує пошук збігів у зазначеному рядку. Повертає масив результатів або null
prompt(Str);
document.write("Повний URL - " + RegExp.input + Str + "<br>");
document.write("Хост - " + RegExp.$1 + "<br>");
document.write("Сайт - " + RegExp.$2 + "<br>");
document.write("Шлях - " + RegExp.$4 + "<br>");
document.write("Імя файла - " + RegExp.$5 + "<br>");
*/
</script>
</body>
</html>
|
есть объект location там все определено уже Вам только вывести-или задача вручную то же самое получить?
http://javascript.ru/window-location |
function getUrlVars(url) {
// использование:
//_get = getUrlVars();
//a = _get['a'];
var vars = {}, hash;
var hashes = decodeURIComponent(url).slice(url.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars[hash[0]] = hash[1];
}
return vars;
}
|
swa,
человеку нужно разбить ссылку на части, а ваш скрипт лишь вытаскивает GET параметры из ссылки. |
Самый простейший вариант:
function parse_url( url ) {
var parts = url.split( "#" ),
out = {};
out.url = url;
out.hash = ( parts.length > 1 ? ( ( url = parts.shift() ) || 1 ) && parts.join( "#" ) : "" );
url = ( parts = url.split( "?" ) ).shift();
out.search = parts.join( "?" );
out.scheme = ( parts = url.split( "://" ) ) && parts.length > 1 ? parts.shift() : "";
out.host = ( ( parts = parts.join( "://" ).split( "/" ) ) && parts.length > 1 &&
parts[0].indexOf(".") > 0 || out.scheme ) && parts.shift() || "";
out.script = parts.pop();
out.path = ( parts.length > 0 ? "/" : "" ) + parts.join( "/" );
return out;
}
var out = parse_url( prompt( "Введите URL: ", "http://somesite.com/folder/index.php?param=value#lalala" ) );
alert([
"url: " + out.url,
"scheme: " + out.scheme,
"host: " + out.host,
"path: " + out.path,
"script: " + out.script,
"search: " + out.search,
"hash: " + out.hash
].join("\n"));
|
Спасибо большое!!!
|
| Часовой пояс GMT +3, время: 04:41. |