我正在尝试创建一个javascript正则表达式来替换单词,但只是整个单词。当单词是别人的子词时,我遇到了问题。例如,假设我想在下面的句子中用“狗”代替“熊”。Javascript正则表达式匹配没有周围字符的单词
熊去beartown与其他熊
这将是:
狗去beartown与其他狗
注:1)beartown没有改变,因为它不是整个词 2.)最后一个“熊”确实改变了,即使它后面没有任何字符。
我现在的脚本是:
...
var term = this.terms[i];
var pattern = new RegExp(term.name,'ig');
var content = $(this.container).html().replace(pattern,function(match) {
....
目前,它匹配“熊”的所有实例,因此基于Javascript Regex Surrounded by Non-Word Characters, Don't Include Surroundings它不会留下了“beartown”
,我想这个变化:
var pattern = new RegExp('\b' + term.name + '\b','ig');
但是,无论我尝试什么样的变化,它现在都不会匹配。诚然,正则表达式(特别是结合w/javascript)不是我的事情。
任何帮助将不胜感激!
感谢, 杰里米
第二个应该是''\\ b'+ term.name +'\\ b''。你需要避开反斜杠。 – soktinpk 2014-12-04 02:32:40