node后台接收内容敏感词屏蔽
文章 1621 0 0 0
发布时间:2020年01月15日

概述

在做评论或者上传文章的时候难免有些可恶的用户上传一些不当的内容,为此我们检测这些字禁止通过我们的关卡,下面是我node中反馈上传做出的敏感词检测欢迎指正!

如下我们检测原子弹为敏感词

let result = utils.TestingSensitiveWords('我们在做原子弹的啊')
console.log('当前',result )
if (result) {
    console.log("正确")
} else {
    console.log("错误")
}

node中会出现回调地狱的现象,并且导致异步问题所以用了一个工具函数来检测,又因为比较懒所以没有做字典库,用了一个txt文件作为我们的敏感词字典,node导入实例:

TestingSensitiveWords(keyword){ //在此处遇见文本出现问号会报错
    fs.readFile('public/utils/mgc.txt',function(err,data){
        if(err){
            console.error(err);
        }
        else{
            let txtString  =  Iconv.decode(data, 'gb18030').toString()
            let txtStrings = txtString.replace(/\s/g,'');
            let txtStringtwo = txtStrings.replace(/\r\n/g,'')
            let txtArray = txtStringtwo.split('|1')
            let txtSplice = txtArray.join('|')
            let exp = txtSplice.slice(0,txtSplice.length-1)
            let str = keyword.replace(new RegExp(exp, 'g'),'')
            console.log('当前类型',typeof str)
            console.log(str)
            console.log(keyword)
            return str
        }
    });
}

返回如图内容

node后台接收内容敏感词屏蔽

根据上图我们看到做原子弹被替换成号这样我们就把敏感词替换掉了
敏感词字典下载git:https://github.com/jiawenguang/Sensitive-Thesaurus

评论专区