Hoy, encontré la necesidad de reemplazar ciertos parámetros en la URL con JavaScript.
Copiar código del código de la siguiente manera:
// URL de análisis
función parseurl (url) {
var a = document.createElement ('a');
a.href = url;
Devolver {
Fuente: URL,
Protocolo: A.Protocol.replace (':', ''),
Anfitrión: A.HostName,
Puerto: A.Port,
Consulta: A.Search,
Params: (function () {
var return = {},
seg = a.search.replace (/^/?/, ',' ') .split (' & '),
len = seg.length, i = 0, s;
para (; i <len; i ++) {
if (! seg [i]) {continuar;}
s = seg [i] .split ('=');
Ret [s [0]] = s [1];
}
Regresar ret;
}) () ,,,
Archivo: (a.pathname.match (/// ([^//?#]+) $/i) || [, ''] [1],
Hash: a.hash.replace ('#', ''),
Ruta: a.pathname.replace (/^([^//])/, '/$ 1'),
Pariente: (a.href.match (/tps ?: ///////////////font>(.+)//) || [, ''] [1] ,,
Segmentos: a.pathname.replace (/^////, '') .split ('/')
};
}
// Reemplazar el valor del parámetro del mismo nombre en Myurl
Function reemplazLParams (MyRL, NewParams) {
/*
para (var x en myrl.params) {
para (var y en newparams) {
if (x.tolowercase () == y.tolowercase ()) {) {
myurl.params [x] = newParams [y];
}
}
}
*/
para (var x en newparams) {
var hasmurlParams = false;
para (var y en myrl.params) {
if (x.tolowercase () == y.tolowercase ()) {) {
myurl.params [y] = newParams [x];
HasinMyUrlParams = True;
Romper;
}
}
// El parámetro que resultó ser agregado
if (! HasinmyurlParams) {
Myurl.Params [x] = newParams [x];
}
}
var _retult = myurl.protocol + ": //" + myurl.host + ":" + myurl.port + myurl.path + "?" ;;;;;;;;;;;;;;
para (var p en 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;
}
Return _Result;
}
// Salida auxiliar
Función 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) // = '?
w ("myurl.params =" + myurl.params) // = object = {id: 255, m: hola}
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 = reemplazlParams (myrl, {id: 101, m: "mundo", página: 1, "página": 2});
w ("<br> nueva URL es:")
w (_newurl);