Javascript 向简单的Socket.IO应用程序添加亵渎过滤器
我正在制作一个简单的socket.io应用程序,您可以在上看到。我正试图使用RegExp为这个网站添加一个相对简单的亵渎过滤器,但我一直遇到一个问题——当检测到一个坏单词时,我没有显示我希望它显示的消息,什么也没有发生。我对JS和正则表达式非常缺乏经验,所以可能有一些东西我忽略了,我希望能得到任何帮助 我的代码:Javascript 向简单的Socket.IO应用程序添加亵渎过滤器,javascript,html,regex,socket.io,profanity,Javascript,Html,Regex,Socket.io,Profanity,我正在制作一个简单的socket.io应用程序,您可以在上看到。我正试图使用RegExp为这个网站添加一个相对简单的亵渎过滤器,但我一直遇到一个问题——当检测到一个坏单词时,我没有显示我希望它显示的消息,什么也没有发生。我对JS和正则表达式非常缺乏经验,所以可能有一些东西我忽略了,我希望能得到任何帮助 我的代码: 如果(location.protocol!=“https:”){ location.href=https://backchannel.glitch.me' } 反向通道 *{边距:
如果(location.protocol!=“https:”){
location.href=https://backchannel.glitch.me'
}
反向通道
*{边距:0;填充:0;框大小:边框框;}
正文{font:13px Helvetica,Arial;文本对齐:左;溢出:自动;颜色:白色;}
表单{背景:#666666;填充:3px;位置:静态;底部:0;宽度:100%;}
表单输入{填充:8px;宽度:90%;右边距:.5%;}
窗体按钮{宽度:9%;背景:白色;边框:无;填充:9px 8px;}
#消息{列表样式类型:无;边距:0;填充:0;最大高度:95.7vh;溢出:}
#消息li{填充:5px 10px;背景:无;}
#消息li:n子项(奇数){背景:无;}
主{文本对齐:居中;边距:0;}
.messageContainer{溢出:自动;}
var audio=新音频文件('https://cdn.glitch.com/a359ff0b-1273-40ab-a005-10968e106f1d%2FError-声音。mp3?1544050723783’;
$(函数(){
var socket=io();
$('form')。提交(函数(){
emit('chat message',$('#m').val());
$('m').val('');
返回false;
});
socket.on('chat message',函数(msg){
//如果用户键入包含“坏字”的消息,请不要打印该消息,而是打印一条系统消息,说明该消息已被阻止。
if(msg==newregexp('*坏字*')){
$(“#消息”).append($(“”).text(“[SYSMOD]:由于显式内容而被阻止的消息”);
}
其他的
$(“#消息”).append($(“ ”).text(“[USER]:”+msg));
音频播放();
});
//当服务器发出“新用户已连接”消息时,添加这样一条消息。
socket.on('new user',函数(msg){
$(“#消息”).append($(“ ”).text(“[SYSTEM]:新用户已连接”);
音频播放();
});
//当服务器发出“user disconnected”(用户断开连接)时,添加这样一条消息。
socket.on('user disconnected',函数(msg){
$(“#消息”).append($(“ ”).text(“[系统]:用户已断开连接”);
音频播放();
});
});
发送消息
将字符串与带有布尔运算符的RegExp对象进行比较将始终返回false。您希望使用RegExp的test
方法进行此操作。例如:
new RegExp("*bad words*").test(msg);
此外,还存在用于构造正则表达式的速记语法
/myregex/.test(msg);