【发布时间】:2012-02-28 22:30:48
【问题描述】:
我正在替换字符串中的单词,并尝试根据 '\b' + myword + '\b' 进行匹配
但是,当myword 两端都有非单词字符时,这不起作用。
var myword1 = "testword,";
var myword2 = "(testword";
var testString = "<tag>asdftestword, is a (testwordasdf also (testword </tag> (testword, should be replaced everywhere there is a testword,)";
var rx1 = new RegExp(???(myword1) ,'g');
var rx2 = new RegExp(???(myword2) ,'g');
var result1 = testString.replace(rx1, "replacement");
var result2 = testString.replace(rx2, "replacement");
我希望结果是
result1 == "<tag>asdftestword, is a (testwordasdf also (testword </tag> (replacement should be replaced everywhere there is a replacement)"
result2 == "<tag>asdftestword, is a (testwordasdf also replacement </tag> replacement, should be replaced everywhere there is a testword,)"
【问题讨论】:
-
无论
myword包含哪些字符,都不能以这种方式创建正则表达式。看看how to pass a variable into an regular expression in javascript。 -
这适用于所有标点符号,它们是 \b 以外的字符(单词的开头/结尾)。这很正常。
-
@FelixKling 感谢您的提示。 :)
标签: javascript regex