我正在编写一个非常基本的评论系统,并希望实现一个简单、高效的坏词过滤器。
我知道与坏词过滤器相关的问题,并意识到编写一个可以防止拼写错误和含沙射影的内容基本上是不可能的,但我只想写一个非常简单的内容,以防止显示粗俗单词的正确拼写。
我找到了一个大约 400 个单词的坏词列表,并将其放入preg_replace()
其中,模式为:
/(these|are|bad|words|like|ass)/
问题是它会替换模式中出现的任何字符,即使它们位于单词的中间。因此,例如,assist
将替换为ist
.
第二个问题:除了用空字符串或固定宽度的字符串(例如 )替换坏词之外,****
有没有办法用与替换词的长度相同的星号字符串替换它?