/**
* @description 敏感词搜索构造函数
* @author Justin
* @date 2019/07/25
* @param {Object} data 敏感词
*/
class SensitiveSearch {
sensitiveWordList = []; //敏感词
sensitiveWordListMap = null; //敏感词map
sensitiveReg = /^[a-zA-Z\u4E00-\u9FA5]+$/; //过滤特殊字符正则
constructor(data) {
this.sensitiveWordList = data;
this.sensitiveWordListMap = this.makeSensitiveMap();
}
/**
* @description 构造敏感词map
* @author Justin
* @date 2019/07/25
*/
makeSensitiveMap() {
const result = new Map();
for (const word of this.sensitiveWordList) {
let map = result;
for (let i = 0; i < word.length; i++) {
// 依次获取字
const char = word.charAt(i);
// 判断是否存在
if (map.get(char)) {
// 获取下一层节点
map = map.get(char);
} else {
// 将当前节点设置为非结尾节点
if (map.get('laster') ==
前端敏感词过滤vue/js
最新推荐文章于 2024-07-24 23:00:08 发布