正则表达式,用于突出显示文本中的单词

Regular expression to higlight a word in a text

本文关键字:文本 单词 显示 用于 正则表达式      更新时间:2023-09-26

我用魔杖来突出显示用于进行研究的单词。我正在尝试在 JavaScript 中使用正则表达式,但我遇到了以下问题。

这是我正在使用的代码:

var key_word = "and"; 
var text= "I bought milk and water"; 
var re = new RegExp("(" + key_word + ")", 'ig'); 
text = text.replace(re, "<strong>$1</strong>"); 
console.log(text);

正确结果 :

I bought milk <strong>and</strong> water. 

但是随着文本

var text = "I am getting a better understanding.";

错误的结果 :

I am getting a better underst<strong>and</strong>ing.

你需要使用单词边界:

var re = new RegExp("''b(" + key_word + ")''b", 'ig'); 

使用单词边界 - 'b将确保关键字仅在其前后是非单词字符时才匹配。

请注意,在使用构造函数时RegExp需要转义反斜杠。所以,它应该是''b的,因为'本身就是字符串文字中的转义字符。

<小时 />

或者,您可以使用正则表达式文字:

var re = /'b(and)'b/ig;
text = text.replace(re, "<strong>$1</strong>");