var testString = "This string has a bad word in it to test";
function findBadWords(string) {
var badWord = /\bbad\b | \bword\b | \btest\b/gi
var isBadWord = string.match(badWord);
if (isBadWord) {
newString = string.replace(badWord," *** ");
}
document.write(newString);
}
findBadWords(testString);
所以我现在正在使用RegExp,我遇到了一个我不明白的问题。在上面的代码中,我设置了一个RegExp来查找"坏词"在一个字符串中。据我所知,我已将其设置为找到" bad"," word"和" test"只要在单词前后有单词边界。我遇到的问题是" word"没有被替换。如果我在" word"之前放了一个非坏词。它会被取代,但不会被取代。我试过取消一些单词边界或添加一些非单词边界而没有运气。有人会介意解释为什么这段代码的工作方式和我如何修复它?
谢谢!
另外,我知道使用document.write是一个糟糕的选择,但它只是用于测试我发誓!
答案 0 :(得分:0)
这里的问题是{“1}}和”“空格字符。如果从正则表达式中删除空格,则效果很好。
\b