javascript - 在字符串javascript中替换使用正则表达式

标签 javascript regex

我正在尝试使用正则表达式替换特定字符串。

var replace = {'<RAndom>': "random object"};

我正在使用动态正则表达式替换它,因为我有很多对象。

var tagsText = "<RAndom> hellow world";
var regex = new RegExp('\\b(' + Object.keys(replace).join('|') + ')\\b', 'g');
tagsText = tagsText.replace(regex, function(match) {
    return replace[match] + match;
});

但它不起作用。我认为问题出在分号上,但我不确定。输出再次相同。

"<RAndom> hellow world"

有什么想法吗?

最佳答案

问题是在 &; 之前的每一侧都存在 \b(单词边界)。 &; 都不是非单词字符,\b 不能在非单词字符前后断言。

您可以使用 \B 代替:

var regex = new RegExp('\\B(' + Object.keys(replace).join('|') + ')\\B', 'g');

然后

tagsText  = tagsText.replace(regex, function(match) {
    return replace[match] + match;
});

//=> "random object<RAndom> hellow world"

关于javascript - 在字符串javascript中替换使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36767422/

相关文章:

javascript - 当前上下文中不存在名称 'ScriptManager'

javascript - 如何将 php 中的 json 数据解析为 jQuery

具有可变属性的Javascript对象: Is it possible?

java - 方法匹配效果不佳

绝对 div 元素的 Javascript 和 CSS 比例

javascript - JS 中判断值是否有效的正则表达式返回 null

Java正则表达式匹配11个字符长的swift代码的最后3个字符中的字母

sql - Oracle 正则表达式列出两个字符串之间的唯一字符差异

regex - 匹配正则表达式中的第一个字符?

javascript - 同一页面上有多个有用的按钮