我試圖在 discord.js v13 和 node.js v16 中使用我的機器人過濾壞詞。我寫了一個簡單的代碼,但它不能正常作業。
我的代碼:
const args = message.content.split(/ /);
if ((message.guild.id = 'GUILD_ID')) {
const bad = ['word1', 'word2'];
if (bad.includes(args[0].join(' '))) {
message.delete();
} else {
return;
}
}
當我發送“word1”訊息時,它可以正常作業并洗掉該訊息。但是當我發送例如:“Hello word1”時,它不起作用。
它需要做什么?
- 如果訊息中包含壞詞,請洗掉該訊息。
注意:我沒有收到任何錯誤!
uj5u.com熱心網友回復:
這是因為您檢查陣列是否包含 string "Hello word1"。
您可以使用Array#some()回呼函式來檢查字串是否包含陣列中的任何這些單詞:
function containsBadWords(str) {
const badWords = ['word1', 'word2']
if (badWords.some(word => str.toLowerCase().includes(word)))
return 'String contains bad words'
else
return 'No bad words found'
}
console.log(containsBadWords('word1'))
console.log(containsBadWords('Some other text that includes word2 here'))
console.log(containsBadWords('No bad words here'))
// make sure you don't use single '=' here!
if (message.guild.id === 'GUILD_ID') {
const bad = ['word1', 'word2']
if (bad.some(word => message.content.includes(word)))
message.delete()
else
return
}
uj5u.com熱心網友回復:
陣列包含不會為您的 Hello world1 字串回傳 true。在您的情況下,您想查找陣列是否通過子字串包含該值。這不是 array.includes 方法的作業方式。查看這個答案在 javascript 中,如何在陣列中搜索子字串匹配
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/487429.html
標籤:javascript 节点.js 不和谐 不和谐.js
