我正在为我使用的网站制作聊天机器人。我正在添加禁止的单词列表。我已经让它工作到某些用户不允许发布链接的地方。这是代码。
SoapServer
所以我所做的几乎与以上内容重复,但没有用户限制并添加了新词。这是代码。
if (text.indexOf("http://") > -1 || text.indexOf("https://") > -1) {
if (isOwner || isStaff || user === "user") {}
else if (!isSub) {
moderation.timeout(name, 5);
channel.sendMessage(name + ", only subs can post links.");
}
链接删除工作完全正常。我不认为if (text.indexOf("http://") > -1 || text.indexOf("https://") > -1) {
if (isOwner || isStaff || user === "user") {}
else if (!isSub) {
moderation.timeout(name, 5);
channel.sendMessage(name + ", only subs can post links.");
}
}
if (text.indexOf("word1") > -1 || text.indexOf("word2") > -1 || text.indexOf("word3") > -1) {
moderation.timeout(name, 5);
channel.sendMessage(name + ", please don't be rude.");
}
对于禁止列表这个词是区分大小写的。使用不区分大小写的函数有更好的方法吗?
答案 0 :(得分:2)
您需要规范化两个字符串的大小写,然后执行indexOf
。
function indexOfCaseInsenstive(a, b) {
a = a.toLowerCase();
b = b.toLowerCase();
return a.indexOf(b);
}
答案 1 :(得分:1)
创建单词列表,为其创建正则表达式并针对传入消息测试正则表达式:
const forbiddenWords = ['http://', 'word1', 'word2'];
const regexp = new RegExp(forbiddenWords.join('|'), 'i');
if(regexp.test(message)) {
// you have a forbidden message.
}