正则表达式用于替换另一个单词中的文本

时间:2018-04-11 21:28:56

标签: javascript regex

我有一个文本字符串,我想用另一个文本替换它使用regexp

表示每个单词都替换为特定单词

input= Jounal Page Year DOI Roche-Link

我的预期输出

output = Publication Title Pagination Publication Date Digital Object Identifier Roche Link

期刊替换出版物标题

Page by Pagination

按出版日期替换年份

DOI替换为数字对象标识符

罗氏链接取代Roche-Link

  • my regex = \ b(Journal | Year | Page | DOI | Roche-Link)\ b

我的正则表达式检测所有特定单词,但我没有找到使用$将每个单词替换为特定单词的解决方案

output = input.replace(/\b(Journal|Year|Page|DOI|Roche-Link)\b/g, (Publication Title)+$1, (Pagination)+$2,(Publication Date)+$3,(Digital Object Identifier)+$4,(Roche Link)+$5)

1 个答案:

答案 0 :(得分:1)

你可以这样做:



var dict = {
  "Journal": "Publication Title",
  "Page":  "Pagination",
  "Year":  "Publication Date",
  "DOI": "Digital Object Identifier",
  "Roche-Link":  "Roche Link"
};

var regExp = new RegExp("\\b(" + Object.keys(dict).join("|") + ")\\b", "g");

var translated = "Journal Page Year DOI Roche-Link".replace(regExp, function(match) {
		return dict[match];
});

console.log(translated);