Сегодня я столкнулся с необходимостью заменить определенные параметры в URL -адресу JavaScript.
Код кода копирования следующим образом:
// АНАЛИЗ URL
Функция parseurl (url) {
var a = document.createElement ('a');
a.href = url;
Возвращаться {
Источник: URL,
Протокол: a.protocol.replace (':', ''),
Ведущий: a.hostname,
Порт: A.Port,
Запрос: A.Search,
Params: (function () {
var return = {},
seg = a.search.replace (/^/?/, ',' ') .split (' & '),
len = seg.length, i = 0, s;
for (; i <len; i ++) {
if (! seg [i]) {продолжить;}
s = seg [i] .split ('=');
Ret [s [0]] = s [1];
}
Вернуть вт;
}) () ,,,,
Файл: (a.pathname.match (/// ([^//?#]+) $/i) || [, ''] [1],
Хэш: a.hash.replace ('#', ''),
Путь: a.pathname.replace (/^([^//])/, '/$ 1'),
Относительный: (a.href.match (/tps ?: /////////////n+(.+)/) || [, ''] [1] ,,,,
сегменты: a.pathname.replace (/^///, '') .split ('/')
};
}
// заменить значение параметра того же имени в myurl
Функция replyurlparams (myrl, newparams) {
/*
для (var x в myrl.params) {
для (var y в NewParams) {
if (x.tolaycom
myurl.params [x] = newparams [y];
}
}
}
*/
для (var x в newparams) {
var hasmurlparams = false;
для (var y в myrl.params) {
if (x.tolaycom
myurl.params [y] = newparams [x];
Hasinmyurlparams = true;
Перерыв;
}
}
// параметр, который он оказался добавленным
if (! hasinmyurlparams) {
myurl.params [x] = newparams [x];
}
}
var _retult = myurl.protocol + ": //" + myurl.host + ":" + myurl.port + myurl.path + "?
для (var p в myurl.params) {
_Result + = (p + "=" + myurl.params [p] + "&");
}
if (_result.substr (_result.length -1) == "&") {{{{{{
_Result = _result.substr (0, _result.length -1);
}
ifrl.hash!
_Result + = "#" + myurl.hash;
}
Вернуть _result;
}
// вспомогательный выход
Функция w (str) {
document.write (str + "<br>");
}
var myurl = parseurl ('http://abc.com:8080/dir/index.html?id=255&m=helloop');););
W.
W.
W.
w ("myurl.query =" + myurl.query) // = '?
w ("myurl.params =" + myurl.params) // = object = {id: 255, m: hello}
W.
w ("myurl.segments =" + myurl.segments) // = array = ['dir', 'index.html']]]
W.
W.
w ("myurl.source =" + myurl.source) // = 'http://abc.com:8080/dir/index.html?id=255&m=helloop'
var _newurl = replyurlparams (myrl, {id: 101, m: "world", page: 1, "page": 2});
w ("<br> новый URL:")
w (_newurl);