我喜欢更改语言功能中的 URL,因此我尝试了以下代码:
var dec = {
"agence": "agency",
"conseil": "consulting",
"partnaires": "partners",
"a-propos": "about",
"recherche": "search"
}
var url = window.location.href;
var urlRedirect = url.replace("/fr/", "/en/");
urlRedirect = urlRedirect.replace(!!) // how can I use the dec ?
例如,如果我的网址是这样的: http://exemple.com/fr/agence
应该是这样的: http://exemple.com/en/agency
最佳答案
使用 for...in
迭代对象的键循环,然后检查 URL
中是否存在 key 字符串,如果是,则replace()
它与该键的值。
请参阅下文,我仅在本示例中使用了虚假 URL:
var dec = {
"agence": "agency",
"conseil": "consulting",
"partnaires": "partners",
"a-propos": "about",
"recherche": "search",
"fr":"en"
}
//var url = window.location.href;
//let's fake a url here:
var url = "http://exemple.com/fr/agence";
console.log("entry URL: ", url)
for (var key in dec){
if (url.indexOf(key) > -1){
url = url.replace(key, dec[key])
}
}
console.log("output URL: ", url);
注意:这可行,但如果 URL 包含 dec
中的单词之一在 URL 的主要部分中,它也会发生变化(例如: www.agence.com/fr
将变为 www.agency.com/en
)因此,如果您只想要路径,则 /
之后的部分要更改,请使用 window.location.pathname
,然后仅替换该部分。
关于Javascript:替换字符串中的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52277311/