【发布时间】:2018-08-11 03:46:08
【问题描述】:
我正在使用 Discord.js 创建一个 Discord 机器人,只要有人在消息中发誓,它就会捕获。我有一个数组,里面有很多常用的脏话、缩写词、种族和性诽谤等等,我希望它能够捕捉到。
const SwearWords = ["a##","ba##ard","bi###","c#ck","c#nt","d#ck","f#ck","gay","k#ke","n#gg","omfg","sh#t","wtf"];
(数组没有所有标签,我只是将它们添加到帖子中)
我最初尝试使用的是if (lcMsg.includes(SwearWords)) {return;},而lcMsg 是message.content.toLowerCase();,这样无论用户如何使用它,它都能捕捉到用户的脏话。但这没有用,所以我在谷歌搜索答案后尝试使用.entries() 和.every()(但我从未找到任何答案)。
我想.map() 会起作用吗?我不知道,因为我还没有学会如何使用它。如果有人能帮我解决这个问题,那就太好了。
【问题讨论】:
-
这个怎么样?
lcMsg.split(" ").forEach(msg=> swearWords.includes(msg)) -
let containsSwears = lcMsg.split(" ").some(s => SwearWords.indexOf(s.toLowerCase()) > -1); -
您接受答案的速度太快了。请至少等待 24 或 48 小时才能接受答案,因为这会阻止其他人尝试发布更好的答案。
标签: javascript arrays node.js discord.js