纯前端敏感词过滤

最近有一个项目,是做聊天室的,要求可以根据管理员的录入内容来过滤一些关键词

聊天,即时性很重要,如果交给后端,遇到大量的消息进入服务器,在判断,会导致服务器负载过大。于是考虑使用JS 在发送信息之前就先过滤掉关键词。

思路:数组+正则

代码:

数据字典

keyWordsData.js

var keyWordArray = ['草榴','草榴社区','下载地址','泰康证券']


核心代码

filterKeyWords.js

function filterkeyWords(data, str) {
var s = str;
var r = 0;
var a = new Object();
for(var i in data) {
var patt = new RegExp('(' + data[i] + ')', 'g');
var ret_test = patt.test(s);
if(ret_test) {
s = s.replace(patt, '***');
r = r + 1;
}
}
a.s = s;
a.r = r;
return a;
}


实现方法

var rs = filterkeyWords(keyWordArray,'欢迎进入草榴社区,草榴社区是一家很大的bbs');
console.log(rs)



数据字典可以通过后端生成JS文件,一次生成终生享用

返回的s就是过滤后的内容,r是包含了多少个关键词


原文链接:,转发请注明来源!
「纯前端敏感词过滤」评论列表

发表评论