如何替换URL中的第二个字符实例?

时间:2017-01-03 21:37:44

标签: javascript jquery

我正在尝试更换'&'的第二个实例。字符或替换'&'的所有实例在第一个''之后在URL www.website.com / - Inventory& vt = test%20&%20unit

到目前为止,我一直在使用:

var url = window.location.toString();
window.location = url.replace(/&/, '%26');
window.location.reload(false);

但是它取代了所有'&'字符。任何想法都表示赞赏。谢谢!

3 个答案:

答案 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)

&#13;
&#13;
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;
&#13;
&#13;

结果是:

<强> www.website.com / - 库存和安培; VT =试验%20%26%20unit