我正在为我拥有的聊天室制作一个过滤器。
我成功地让它把 NSFW 单词变成一堆符号和星号来审查它,但很多人通过简单地在后面加上反斜杠、句号或其他符号/字母来绕过它,因为我只输入了没有标点符号的单词和符号。他们还添加了字符,例如 eeeNSFWeee,因此过滤器不会将其视为单词。
有没有办法让过滤器选择在字符串中形成单词的某些字符并替换它们(替换或不替换连接到消息的额外字符)?
过滤器是用 JavaScript 和 Socket.io 制作的
筛选代码:
const array = [
"NSFW",
"Bad Word"
"Inappropriate Word"
];
message = message
.split(" ")
.map((word) => (array.includes(word.toLowerCase()) ? "$#!%" : word))
.join(" ");
例如,如果有人完全一样地输入“Bad Word”(大写不是问题),它就会成功审查。但是,如果有人输入“Bad Word”。这将是一个问题,因为它有一个句点,它会将其视为不同的单词,这就是我需要解决的问题。