Javascript:替换字符串中的特定单词

标签 javascript jquery url

我喜欢更改语言功能中的 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/

相关文章:

javascript - 如何通过 socket.io 将实时音频从浏览器流式传输到 Google Cloud Speech?

javascript - 通过 HTML 注入(inject)在 Angular 2/4 应用程序中运行 javascript 脚本

javascript - 在字符串模板中使用三元运算符的正确方法是什么?

python - Django 将空白 URL 重定向到命名 URL

javascript - setTimeout 如何在 Node.JS 上工作,请解释这段代码片段

javascript - 调用 h :commandButton submit 后关闭模态面板

javascript - 当用户退出我的网站时播放音频

javascript - dataTables - 如何使所有列在 'draw.dt' 上可排序

Android TextView 网址

android - 获取存储在drawable中的图像的URI