正则表达式,用于突出显示文本中的单词
Regular expression to higlight a word in a text
我用魔杖来突出显示用于进行研究的单词。我正在尝试在 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>");
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 如何按从当前单词到段落中该句子(.)结尾的范围选择文本
- 文本中的 Javascript 单词突出显示
- 识别两个文本中的单词(if 语句在 for 循环中)
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 如何使钛文本区域中的单词加粗或斜体
- jQuery 验证输入文本是否仅接受数字、单词或日期
- 如何对一块文本进行切片,使其不会'Don’不要以分裂的单词结尾
- 文本框中需要两个单词,使用AngularJS
- 使用jquery或JS查找文本区域内的所有单词位置
- 滚动文本中的顶部单词
- 如何将有角度的文本区域设置为仅以特定单词开头
- 如何使用jquery只允许文本框中的特定单词
- 如何在文本区域中获取最后一个单词的位置
- 使用PHP验证文本文件中的单词
- JS/Jquery:字符串到单词的文本分割脚本使用字典和最长匹配
- 标记文本中的几个单词
- Javascript/REGEX:删除字符串中以特定字母开头的特定文本(单词),单词之间用空格分隔