我正在做脏话过滤,我希望为每个字符替换*
的字词。但是我想要只替换单词和不是子串的单词以及comas,dots,......必须保留在原来的位置。
请注意 this(工作)示例。在这种情况下,我正在过滤单词f***
。第一行和第二行是正确选择的,但其他两行则没有。在最后一种情况下,除了space
之外,所有选择都会被选择,而第三种情况则类似。
答案 0 :(得分:2)
听起来像正则表达式非常适合解决您的整个问题。使用正则表达式查找发誓单词然后使用代码进行替换可能更容易。
\b(swearword)\b
可能就是你要找的东西。 \ b是零宽度字边界。
RegExp.prototype.test()
以下是使用JavaScript进行此操作的示例代码。 ES5兼容!
var filterRegex = /\b(swearword)\b/; var testString = "swearword"; filterRegex.test(testString);