Javascript 正在替换url参数-url已损坏
在我的小提琴中,我试图在某个事件上用javascript函数更新我的url 每当我删除与Javascript 正在替换url参数-url已损坏,javascript,regex,url,Javascript,Regex,Url,在我的小提琴中,我试图在某个事件上用javascript函数更新我的url 每当我删除与?相邻的url参数时,它都会删除?并仅附加其余的值,因此在第一个警报中,url是正常的,但在第二个函数调用中,url被破坏 如果删除了?旁边的参数,如何处理这种情况。有什么想法吗?这里有一种方法: function paramReplace(url, key, value) { var parser = document.createElement('a'); parser.href = url;
?
相邻的url参数时,它都会删除?
并仅附加其余的值,因此在第一个警报中,url是正常的,但在第二个函数调用中,url被破坏
如果删除了
?
旁边的参数,如何处理这种情况。有什么想法吗?这里有一种方法:
function paramReplace(url, key, value) {
var parser = document.createElement('a');
parser.href = url;
var re = new RegExp('^' + key + '=', 'i');
var search = parser.search.substring(1).split('&');
for (i = 0; i < search.length; i++) {
if (re.test(search[i])) {
search[i] = key + '=' + value;
break;
}
}
parser.search = search.join('&');
return parser.href;
}
var url = "http://www.example.com/xyz/test.html?Color=Black&key=dress&variety=Leather";
var key = 'variety';
var value = 'modified';
console.log(paramReplace(url, key, value));
var key = 'color';
var value = 'modified';
console.log(paramReplace(url, key, value));
函数参数替换(url、键、值){
var parser=document.createElement('a');
parser.href=url;
var re=new RegExp('^'+key+'=','i');
var search=parser.search.substring(1.split('&');
对于(i=0;i
此代码解析URL,遍历搜索项并删除匹配的键值对。提示:使用
console.log
而不是alert
-这非常烦人。与其使用正则表达式(因此出现第二个问题),不如尝试解析URL()然后将其重建为您所需的任何内容。更改策略以不使用空字符串替换¶m=value
或?param=value
,而是使用空字符串替换param=value&
或param=value
(最后一个参数)。url末尾的额外&
不会破坏它(如果替换最后一个参数,它会出现)。@scrowler:我知道警报很烦人,但在我的情况下,这是调试某些东西的快速方法,当然我知道console.log,我真的不明白有3个以上的投票(?)对于这个评论。@Ulugbek Umirov:leaving&最终可能会破坏url,而且url看起来不好。很好,它可以工作。感谢您的帮助,我非常感谢。如何更改上述函数以接受3个参数,第三个是值paramplace(名称、url、值)
需要找到一个参数并将其值替换为“value”?-上面的3个参数的代码实际上破坏了整个url…是的,对不起,我更改了参数的顺序。在本例中,第一个参数是URL,第二个是键,第三个是值。这取决于你定义的顺序。
function paramReplace(url, key, value) {
var parser = document.createElement('a');
parser.href = url;
var re = new RegExp('^' + key + '=', 'i');
var search = parser.search.substring(1).split('&');
for (i = 0; i < search.length; i++) {
if (re.test(search[i])) {
search[i] = key + '=' + value;
break;
}
}
parser.search = search.join('&');
return parser.href;
}
var url = "http://www.example.com/xyz/test.html?Color=Black&key=dress&variety=Leather";
var key = 'variety';
var value = 'modified';
console.log(paramReplace(url, key, value));
var key = 'color';
var value = 'modified';
console.log(paramReplace(url, key, value));