过滤敏感、不良词汇。原理:一种是正则表达式,一种是对象方法replace()。
正则实例一:
var filter = /一枪爆头/g; // 将受限制的词语组成正则表达式 var said = "他被人一枪爆头了"; // 将接受检查的语句 if( filter.test(said)) {// 如果被检查语句中存在受限词汇 alert( "该语句中有限制级词语,系统已经过滤!" ); // 显示警告 }else{// 否则 alert( said ); // 输出原话 }
正则实例二:
法1:RegExp()
function filter() { // 获取输入框的内容inputContent var inputContent = input.value; // 多个敏感词,这里直接以数组的形式展示出来 var arrMg = ["fuck", "tmd", "他妈的"]; // 显示的内容--showContent var showContent = inputContent; // 正则表达式 // \d 匹配数字 for (var i = 0; i < arrMg.length; i++) { // 创建一个正则表达式 var r = new RegExp(arrMg[i], "ig"); showContent = showContent.replace(r, "*"); } // 显示的内容--showInput showInput.value = showContent; }
法2:replace()
function filtion(){ var inputContent = input.value; // 多个敏感词 var arrMg = ["fuck", "tmd", "他妈的"]; var showContent = inputContent; for (var i = 0; i < arrMg.length; i++) { // replace 只会替换第一个,后面如果还有相同的内容,就不会替换了 showContent = showContent.replace(arrMg[i], "*"); } showInput.value = showContent; }
调用法1、法2的方法(多个敏感词)如下:
<textarea id="inputContent" ></textarea> <input type="button" value="转换" onclick="filter()"/> <textarea id="showInput"></textarea>
法3:replace()
var words=['敏感词1','敏感词2']; var p='我是敏感词1,我也是敏感词2,测试看看'; for(var i=0;i<words.length;i++){ p=p.replace(new RegExp(words[i],'ig'),new Array(words[i].length).join('*')); }; alert(p);
当然,敏感词的过滤还是还有好几种方法的,比如jq的也可以,当然使用一些目前主流的前段框架也是可以的,例如angular、vue等这些都会有自己的过滤器。但是,在现实开发中,过滤这一块的话,通常交给后台方法。