我有这段代码来突出显示数组中存在的单词,一切正常,只是它没有突出显示包含“.”的单词。
spansR[i].innerHTML = t[i].replace(new RegExp(wordsArray.join("|"),'gi'), function(c) {
return '<span style="color:red">'+c+'</span>';
});
我还尝试转义每个单词中的点
for(var r=0;r<wordsArray.length;r++){
if(wordsArray[r].includes('.')){
wordsArray[r] = wordsArray[r].replace(".", "\\.");
wordsArray[r] = '\\b'+wordsArray[r]+'\\b';
}
}
我还尝试更改这些替换,但它们都不起作用 "replace(".", "\.")" 、 "replace(".", "\.")" 、 "replace(".", "/ .")" 、 "替换('.','/.')" 、 "替换('.','/.')" 。
这是一个简化的测试用例(我想匹配 'free.' )
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var re = "\\bfree\\.\\b";
var str = "The best things in life are free.";
var patt = new RegExp(re);
var res = patt.test(str);
document.getElementById("demo").innerHTML = res;
}
</script>
</body>
</html>