思路
在controller层去调用service层函数创建微博之前,使用mint-filter工具将微博内容content进行过滤,使用过滤后的微博内容在数据库中创建blog
步骤
- 【定义敏感词数组】 在conf-constants.js中,定义敏感词数组
- 【controller层】使用mint-filter工具将微博内容content进行过滤: controller下blog-home.js:
实现效果
敏感词数组中有“法轮功”的字眼,尝试输入“支持法轮功”并发布,效果如下:
借助算法
- 开发工具的作者的文章
- 基于Aho–Corasick算法实现的敏感词过滤方案,Aho–Corasick算法是由Alfred V. Aho和Margaret J.Corasick 发明的字符串搜索算法,用于在输入的一串字符串中匹配有限组“字典”中的子串。它与普通字符串匹配的不同点在于同时与所有字典串进行匹配。算法均摊情况下具有近似于线性的时间复杂度,约为字符串的长度加所有匹配的数量。