繁体   English   中英

聊天消息不会通过过滤器发送

[英]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 ,然后检查每个单词以查看它是否包含坏词。

Two methodologies (FYI neither is perfect. both of these solutions have plenty of edge cases/loopholes: I'd recommend a js package that has more thought put into it npm: bad-words , npm: censor-sensor , or npm: swearhar )

两者都拆分消息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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM