我正在尝试更换'&'的第二个实例。字符或替换'&'的所有实例在第一个''之后在URL www.website.com / - Inventory& vt = test%20&%20unit
到目前为止,我一直在使用:var url = window.location.toString();
window.location = url.replace(/&/, '%26');
window.location.reload(false);
但是它取代了所有'&'字符。任何想法都表示赞赏。谢谢!
答案 0 :(得分:1)
您可以通过将(第一个&
字符的索引)+ 1作为第二个参数传递给indexOf函数来选择网址中第二个&
字符的位置。
indexOf
函数的第二个参数定义了应该从中搜索字符的字符串的索引。
了解详情here
(在这种情况下,搜索从第一个&
字符的1 +索引开始)
var position = url.indexOf("&", url.indexOf("&") + 1);
现在您可以按以下方式替换position
处的字符:
url=url.substr(0, position) + '%26' + url.substr(position + 1);
var url = "www.website.com/--Inventory&vt=test%20&%20unit";
var position = url.indexOf("&", url.indexOf("&") + 1);
url=url.substr(0, position) + '%26' + url.substr(position + 1);
console.log(url)

答案 1 :(得分:0)
很脏,但有效...
var url = window.location.toString();
var explode = url.split("&");
url = "";
for(int i=0; i<explode.length; i++) {
url+=exlode[i];
if(i!=explode.length-1) {
if(i==1){
url+="%26";
} else {
url+="&";
}
}
}
答案 2 :(得分:0)
String.prototype.replaceAt=function(index, character) {
return this.substr(0, index) + character + this.substr(index+1, this.length);
}
var url="www.website.com/--Inventory&vt=test%20&%20unit";
url=url.split("").reverse().join("");
var index=url.indexOf("&");
url=url.replaceAt(index,"62%");
url=url.split("").reverse().join("");
console.log(url);
&#13;
结果是:
<强> www.website.com / - 库存和安培; VT =试验%20%26%20unit 强>