RegEx亵渎过滤器仅审查一次咒骂词

时间:2019-02-11 03:00:34

标签: javascript html regex filter

我正在制作一个正则表达式亵渎过滤程序。例如,当有人在文本框中键入“去他妈的自己”然后按“点击我”按钮时,返回的文本是“去****自己”。

一切都很好。但是,很奇怪的是,如果我输入相同的脏话两次,它只会在第一次被审查。例如,“ Fuck fuck fuck fuck”变成“ **** fuck fuck fuck”。

怎么了?

以下是应该检查F字的代码:

d

而且,万一您需要它,这是整个程序的代码:

{key: sum((item in d) for item in d[key]) for key in d}
#{'Family': 1, 'House': 0}

1 个答案:

答案 0 :(得分:5)

我认为您正在寻找g标志:

var desire = text.replace(/[fF]+[uU]+[cC]+[kK]+/g, "****")
                                                ^

没有g(对于Global)标志,正则表达式仅匹配第一个匹配项,因此仅替换一个匹配项。借助它,正则表达式可以匹配所有 项,这将使您能够有效地替换所有这些项。

请注意,您不需要像[fF]这样的字符类。还有一个标志i(不区分大小写)使匹配不区分大小写。因此,这是一种更清洁的方法:

var desire = text.replace(/f+u+c+k+/gi, "****")
                                    ^^