UNPKG

@yhiot/utils

Version:
104 lines (79 loc) 3.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.forbidReplace = exports.check = exports.buildForbidMap = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _console = _interopRequireDefault(require("console")); // 参考:https://www.jianshu.com/p/1ce154b4bdbe var forbidMap = {}; var buildForbidMap = function buildForbidMap(wordList) { var result = {}; wordList = wordList || sensitiveWords; for (var i = 0, len = wordList.length; i < len; ++i) { var map = result; var word = wordList[i]; for (var j = 0; j < word.length; ++j) { var ch = word.charAt(j); if (map[ch]) { map = map[ch]; if (map['empty']) { break; } } else { if (map['empty']) { delete map['empty']; } map[ch] = { empty: true }; map = map[ch]; } } } forbidMap = result; return result; }; exports.buildForbidMap = buildForbidMap; var check = function check(map, content) { var result = []; var stack = []; var point = map; for (var i = 0, len = content.length; i < len; ++i) { var ch = content.charAt(i); var item = point[ch]; if (!item) { i = i - stack.length; stack = []; point = map; } else if (item['empty']) { stack.push(ch); result.push(stack.join('')); stack = []; point = map; } else { stack.push(ch); point = item; } } return result; }; exports.check = check; var forbidReplace = function forbidReplace(text) { var wordMap = forbidMap; var result = text; var words = check(wordMap, text); for (var i = 0; i < words.length; i++) { var word = words[i]; var xxx = (0, _toConsumableArray2.default)(Array(word.length)).map(function () { return '*'; }).join(''); _console.default.log('forbidReplace', word, word.length, xxx, text); // 创建一个正则表达式 var r = new RegExp(word, 'ig'); result = result.replace(r, xxx); } return result; }; exports.forbidReplace = forbidReplace; var sensitiveWords = ['法轮功', '杜冷丁', '海洛因', 'heroi', 'cocai', 'k粉', '冰毒', '爱他死', '安非他命', '吗啡', '摇头丸', '毛泽东', '江泽民', '胡锦涛', '习近平', '周恩来', '温家宝', '邓小平', '藏独', '退党', '法轮大法', '刘少奇', '董必武', '宋庆龄', '李先念', '杨尚昆', '华国锋', '李鹏', '朱镕基', '朱德', '叶剑英', '吴邦国', '罢免党', '罢免党员', '爱液', '按摩棒', '被操', '被插', '被干', '操死', '操我', '插进', '插你', '插我', 'a片', '18禁', '强奸', '奸杀', '奸污', '奶子', '内射', '群交', '日逼', '肉棒', '肉洞', '肉棍', '肉具', '肉穴', '肉欲', '乳交', '乳头', '骚女', '色逼', '色b', '兽交', '爽片', '吃精', '春药', '荡妇', '口交', '乱交', '乱伦', '轮暴', '轮奸', '淫水', '舔脚', '小穴', '迷奸', '蜜穴', '肛交', '鸡巴', '鸡奸', '妓女', '奸情', '脚交', '精液', '菊花洞', '巨乳', '菊穴', '台独', '台湾独立', '达赖', '迷药', '南京大屠杀', '咖啡因', '李克强', '张德江', '刘云山', '王岐山', '李长春', '胡耀邦', '李洪志', '明慧网', '网银', '银行', '农行', '招行', '建行', '工行', '中行', '交行', '广发', '浦发', '账号', '卡号', '充值', '转账', '转钱', '充话费', '支付宝', '微信支付', '汇款', '打款', 'QQ钱包', '百度钱包'];