聊天消息不会使用过滤器发送
Chat Messages Will Not Send With Filter
我和我的朋友正在为我们学校的学生制作一个聊天室,供他们在空闲时间使用。我正在尝试添加一个过滤器,以使其保持 SFW。我是 JavaScript 的新手,所以当我添加过滤器时,您无法再在聊天中发送消息。但是,当我将过滤器脚本作为评论并禁用它时,消息发送得很好。
过滤代码:
var array = array.js
message.replace(array, "****");
消息代码:
if (message && connected) {
$inputMessage.val("");
addChatMessage({
username: username,
message: message
});
socket.emit("new message", message);
}}
我的朋友负责消息代码,因为他在 JavaScript 方面更有经验,但他很忙,现在无法添加,所以我正在尝试。
假设您有一个要过滤的数组 array
,您可以将 message
拆分为白色 space,然后检查每个单词是否包含错误单词。
两种方法(仅供参考,两者都不是完美的。这两种解决方案都有很多优势cases/loopholes:我推荐一个考虑得更多的js包npm: bad-words, npm: censor-sensor, or npm: swearjar)
两者都拆分消息 message.split(' ')
,然后遍历每个单词以查看是否需要替换 .map
。第一个检查当前单词是否在 array
中,第二个检查 array
个单词是否包含当前单词,如果包含则替换为 ****
const array = ['badword', 'nsfw']
let message = 'my message is full of badwords which may be nsfw'
message = message.split(' ').map(word => array.includes(word.toLowerCase()) ? '*****' : word).join(' ')
console.log(message)
message = 'my message is full of badwords which may be nsfw'
message = message.split(' ').map(word => array.some(nsfword=>word.toLowerCase().includes(nsfword)) ? '*****' : word).join(' ')
console.log(message)
我和我的朋友正在为我们学校的学生制作一个聊天室,供他们在空闲时间使用。我正在尝试添加一个过滤器,以使其保持 SFW。我是 JavaScript 的新手,所以当我添加过滤器时,您无法再在聊天中发送消息。但是,当我将过滤器脚本作为评论并禁用它时,消息发送得很好。
过滤代码:
var array = array.js
message.replace(array, "****");
消息代码:
if (message && connected) {
$inputMessage.val("");
addChatMessage({
username: username,
message: message
});
socket.emit("new message", message);
}}
我的朋友负责消息代码,因为他在 JavaScript 方面更有经验,但他很忙,现在无法添加,所以我正在尝试。
假设您有一个要过滤的数组 array
,您可以将 message
拆分为白色 space,然后检查每个单词是否包含错误单词。
两种方法(仅供参考,两者都不是完美的。这两种解决方案都有很多优势cases/loopholes:我推荐一个考虑得更多的js包npm: bad-words, npm: censor-sensor, or npm: swearjar)
两者都拆分消息 message.split(' ')
,然后遍历每个单词以查看是否需要替换 .map
。第一个检查当前单词是否在 array
中,第二个检查 array
个单词是否包含当前单词,如果包含则替换为 ****
const array = ['badword', 'nsfw']
let message = 'my message is full of badwords which may be nsfw'
message = message.split(' ').map(word => array.includes(word.toLowerCase()) ? '*****' : word).join(' ')
console.log(message)
message = 'my message is full of badwords which may be nsfw'
message = message.split(' ').map(word => array.some(nsfword=>word.toLowerCase().includes(nsfword)) ? '*****' : word).join(' ')
console.log(message)