Aujourd'hui, j'ai rencontré un besoin de remplacer certains paramètres dans l'URL par JavaScript.
Copier le code du code comme suit:
// URL d'analyse
fonction parseUrl (url) {
var a = document.CreateElement ('a');
a.href = url;
Retour {
Source: URL,
Protocole: a.protocol.replace (':', ''),
Hôte: a.hostname,
Port: a.port,
Requête: a.search,
Params: (function () {
var return = {},
seg = a.search.replace (/ ^ /? /, ',' ') .split (' & '),
len = seg.length, i = 0, s;
pour (; i <len; i ++) {
if (! seg [i]) {continue;}
s = seg [i] .split ('=');
Ret [s [0]] = s [1];
}
Return ret;
}) () ,,,
Fichier: (a.pathname.match (/// ([^ //? #] +) $ / i) || [, ''] [1],
Hash: a.hash.replace ('#', ''),
Chemin: a.pathname.replace (/ ^ ([^ //]) /, '/ 1 $'),
Relatif: (a.href.match (/ tps ?: //////////////// / 24
segments: a.pathname.replace (/ ^ ///, '') .split ('/')
};
}
// Remplacez la valeur du paramètre du même nom dans Myurl
Fonction RemplaceRlParams (Myrl, NewParams) {
/ *
pour (var x dans myrl.params) {
pour (var y dans newparams) {
if (x.tolowercase () == y.tolowercase ()) {) {
myUrl.params [x] = newparams [y];
}
}
}
* /
pour (var x dans newparams) {
var hasmurlparams = false;
pour (var y dans myrl.params) {
if (x.tolowercase () == y.tolowercase ()) {) {
myUrl.params [y] = newparams [x];
HasInmyUrlParams = true;
Casser;
}
}
// le paramètre qu'il s'est avéré être ajouté
if (! hasinmyurlparams) {
myUrl.params [x] = newparams [x];
}
}
var _relt = myUrl.protocol + ": //" + myUrl.host + ":" + myUrl.port + myUrl.path + "?" ;;;;;;;;;;;;;;
pour (var p dans 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;
}
Retour _Result;
}
// Sortie auxiliaire
Fonction w (str) {
document.write (str + "<br>");
}
var myurl = parseurl ('http://abc.com:8080/dir/index.html?id=255&m=hello#top'););
w
w
w
W ("MyUrl.Query =" + MyUrl.Query) // = 'ID = 255 & M = Hello'
w ("myurl.params =" + myurl.params) // = objet = {id: 255, m: bonjour}
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=hello#top'
var _newurl = ReplaceurlParams (myrl, {id: 101, m: "world", page: 1, "page": 2});
w ("<br> La nouvelle URL est:")
w (_newurl);