我有一个javascript替换功能的问题,我没有成功解决它。
这是我的代码:https://jsfiddle.net/r36k20sa/1/
var tags = ['zazie', 'johnny'];
tags.forEach(function(element) {
content = content.replace(
new RegExp("(?!<a.*?>.*?)(\\b" + element + "\\b)(?!.*?<\\/a>)", "igm"),
'<a href="" class="esk-seo-plu-link" style="background:red;color:white">$1</a>'
);
});
在tags数组中,如果我反转数组“johnny”,那么“zazie”所有标签都被很好地选中,否则会丢失一些标签。 (本例中的最后一个)。什么可以成功?
有什么可以解释的?好像javascript替换函数是异步运行的?
感谢您的帮助。
答案 0 :(得分:0)
当你有一个触手可及的DOM解析器时,你是否正在认真使用正则表达式来处理HTML?
<a href="http://www.test.com" class="abcd/efgh">ABCD</a>
答案 1 :(得分:0)
请将.
替换为\\.
var tags = ['zazie', 'johnny'];
tags.forEach(function(element) {
content = content.replace(
new RegExp("(?!<a.*?>\\.*?)(\\b" + element + "\\b)(?!\\.*?<\\/a>)", "igm"),
'<a href="" class="esk-seo-plu-link" style="background:red;color:white">$1</a>'
);
});