您可以構建一個正則表達式匹配你的字符串的任何部分是這樣的:
var urlPart = "wall_treatment";
var reg = new RegExp("([&?]+)" + urlPart + "=[^&]+");
只是任何變量保存您的網址字符串/件更換"wall_treatment"
。 [^&]+
會匹配網址中發生的下一次發生的&
。
更換這樣的:
var yourURL = "?collection=French%20Curves&room=Bright%20And%20Airy&scene=best&wall_treatment=Wall Treatment 1";
var new_value = "Wall Treatment 2";
yourURL.replace(reg, "$1" + urlPart + "=" + new_value);
已經解決了,我建議你應該嘗試從一個對象或一個數組,而不是在URL字符串替代變量,建立你的網址:
var myURLSearchObject = {},
addURLSearchPart = function(key, value) {
myURLSearchObject[key] = value;
},
buildURLSearch = function() {
var string = "?";
for (var key in myURLSearchObject) {
if (myURLSearchObject.hasOwnProperty(key)) {
string.length > 1 && (string += '&');
string += key;
string += '=';
string += myURLSearchObject[key];
}
}
return string;
};
現在你可以使用這樣的:
addURLSearchPart('hello', 'hi');
addURLSearchPart('bye', 'goodbye');
buildURLSearch();
那麼,爲什麼你不只是建立字符串? – epascarello
對不起你是什麼意思,每當有東西發生變化時,我將它追加到字符串中,但如果我想更改字符串中已有的東西,該怎麼辦? – Udders
建立需求刺激...'var url = baseURL +「collection =」+ encodeURIComponent(xxx)+「&room =」+ encodeURIComponent(yyy);' – epascarello