在我的机器人中,我实现了一个关键字过滤器,机器人会在聊天中写入的每条消息中进行审查,直到现在它可以工作,但我想改进它,出于尊重的原因,我不会在这里放词,所以我会放其他一些例子,
机器人会检测你是否写了例如“vulgar”、“badword”、“hello”
但我想要实现的是检测他们是否写“hellooo”、“vuulgarr”、“vulg4rr”
这是我存储单词的基地:
坏词.js
var words = ["vulgar", "vulg4r", "hello", "badword4", "badword5"]
module.exports = words;
这是我的函数,它检查是否有坏词出现,拆分任何单词,然后如果找到结果则删除消息,使用 indexOf()
index.js
const _ = require('lodash');
const badwords = require('./badwords');
/**
* Functions
*/
// compares every word to badWords array from badWords.js
function checkWord(word) {
return badwords.indexOf(word) > -1;
}
/**
* Main Module
*/
module.exports = function (self, nick, channel, message) {
'use strict';
message = message.toLowerCase();
message = message.split(' ');
nick = nick;
channel = channel.toLowerCase();
for (var i = 0, len = message.length; i < len; i++) {
if (checkWord(message[i])) {
self.send('.ban', channel, nick);
}
}
}
有什么改进的办法吗,谢谢