我用魔杖突出用于进行研究的词.我试图在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);
Run Code Online (Sandbox Code Playgroud)
正确的结果:
I bought milk <strong>and</strong> water.
Run Code Online (Sandbox Code Playgroud)
但随着文字
var text = "I am getting a better understanding.";
Run Code Online (Sandbox Code Playgroud)
错误的结果:
I am getting a better underst<strong>and</strong>ing.
Run Code Online (Sandbox Code Playgroud)
你需要使用单词边界:
var re = new RegExp("\\b(" + key_word + ")\\b", 'ig');
Run Code Online (Sandbox Code Playgroud)
使用单词边界 - \b将确保仅在关键字前面和后面跟着非单词字符时才匹配.
注意,在使用RegExp构造函数时,您需要转义反斜杠.所以它应该是\\b,因为\它本身就是字符串文字中的转义字符.
或者,您可以使用正则表达式文字:
var re = /\b(and)\b/ig;
text = text.replace(re, "<strong>$1</strong>");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |