我有一个像这样的字符串:
Free-coffee and coffee-free is free coffee
我只需要匹配和替换单独的单词 free
但不是文字{Free}-coffee
和coffee-{free}
想法是标记字符串中的坏词并添加 HTML 标签 <strong>
像这样:
Free-coffee and coffee-free is <strong>free<strong> coffee.
我尝试使用空格,但如果在这句话之前有空格,有时会失败。
这是我当前的正则表达式:
/(\sfree\s|\sfree|free\s)/ig
注意:这需要不区分大小写。
这是代码示例:
var text = "Free-coffee and coffee-free is free coffee";
text = text.replace(/(\sfree\s|\sfree|free\s)/ig, " <strong>strong</strong> ");
请帮助我。
最佳答案
使用以下正则表达式模式:
var text = "Free-coffee and coffee-free is free coffee";
text = text.replace(/(^|\s)(free)(\s|$)/ig, "$1<strong>$2</strong>$3");
console.log(text);
(^|\s)
- 确保free
单词位于字符串的开头或前面有空格
(\s|$)
- 确保free
单词位于字符串末尾或后跟空格
关于Javascript 和 Regex - 字符串中单词的严格匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306230/