实现JS脏话筛选替换的几种途径
一、逐个替换用replace
缺点:筛选的脏话集太少
var oSize = $(this).siblings('.flex-text-wrap').find('.comment-input').val();
console.log(oSize);
//筛选网络暴力语言begin
var b= oSize.replace(/滚/g,'*');
var c= b.replace(/sb/g,'*');
var d= c.replace(/tmd/g,'*');
/*
思路1:脏话存在代码一个数组中,在得到输入的评论后,循环对比
缺点:脏话集多,全插代码中感觉有些不妥
目前结果:失败
失败原因:实际网页效果无法进行循环代替
思路2:脏话存在本地的一个txt文本中,等到用的时候再调用
思路3:脏话存在本地TXT文本,用Python本地分析后上传网页
*/
//筛选网络暴力语言end
oSize = d;
二、正则过滤
这个是目前可以脏话筛选替换的唯一一个
bug:
1、输入脏话后仍然出现在评论区
2、正常没问题的语句不能显示出来
var oSize = $(this).siblings('.flex-text-wrap').find('.comment-input').val();//获取输入内容
console.log(oSize);//传说是按下F12后,可以看见log里写的,但是我刚才尝试并没有什么用
//筛选网络暴力语言begin
var reg=/(a)|(b)/g;//这个就是正则式了,将想过滤的词汇放在这里
var str=oSize.match(reg).join("\",\"");//match可以将符合的词汇挑出来组成一个数组
alert("请不要使用\""+str+"\"等不文明词汇!");
三、未知
bug:
1、我没看懂(捂脸)
2、用这个屏蔽没有用,且评论的话,不能显示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<input type="text" id="Name" /><input type="button" value="Test" onclick="ck()" />
</body>
</html>
<script type="text/javascript">
function ck(){
var obj=document.getElementById("Name") ;
var kw="啊,我,你,他"; //要屏蔽的关键词,多个请用英文输入法状态下的逗号
var tempKw=kw.split(",")
if(tempKw.length>=1){
for(i=0;i<tempKw.length;i++){
if(obj.value.indexOf(tempKw[i])>=0) {
alert("请不要使用敏感文字!");
break; //退出循环
}
} }
}
</script>
四、未知
bug:
同上代码的bug
var oPublish = document.getElementById('publish');
var oMessage = document.getElementById('message');
var oReceive = document.getElementById('receive');
var sensitiveWords = ['赵成亮','吴旭东','薛江强','老王','孙毅','丁函','尚启'];
oPublish.onclick = function(){
var sMessage = oMessage.value;
if(sMessage == ''){
alert('请输入留言!');
return false;
}
// sensitiveWords.forEach.(function(v){
// sMessage = sMessage.replace(v , '***');
// });
sensitiveWords.forEach(function (v) {
while(sMessage.indexOf(v) !== -1){
sMessage = sMessage.replace(v, '***');
}
});
var oLi = document.createElement('li');
oLi.innerHTML =sMessage;
oReceive.appendChild(oLi);
oMessage.value = '';
实现JS脏话筛选替换的几种途径的更多相关文章
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
js replace 全局替换 js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...
- js正则表达式中的问号几种用法小结
这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式,感兴趣的朋友可以参考下 在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪 ...
- js刷新页面有哪几种方法
js刷新页面有哪几种方法 一.总结 一句话总结:location属性的reload方法即可:document.location.reload() 1.页面刷新有哪常见的8种方法? 1,history. ...
- handlebars.js 用 <br>替换掉 内容的换行符
handlebars.js 用 <br>替换掉 内容的换行符 JS: Handlebars.registerHelper('breaklines', function(text) { te ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- 点评js异步加载的4种方式
主要介绍了点评js异步加载的4种方式,帮助大家更全面的了解js异步加载方式,感兴趣的小伙伴们可以参考一下 js异步加载的4种方式,点评开始. <!DOCTYPE html> <htm ...
- (转)在网页中JS函数自动执行常用三种方法
原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中 ...
- js function定义函数的4种方法
js function定义函数的4种方法 1.最基本的作为一个本本分分的函数声明使用. 复制代码代码如下: 复制代码代码如下: function func(){} 或 var func=functio ...
- 关于js的replace替换
关于js的replace替换 msgContent = msgContent.replace("a","b"); 这样的替换只会把第一个a替换成b,不会替换全部 ...
随机推荐
- SQL基础教程(第2版)第7章 集合运算:7-2 联结(以列为单位对表进行联结)
第7章 集合运算:7-2 联结(以列为单位对表进行联结) ■联结的特定语法和过时语法 ● 联结( JOIN)就是将其他表中的列添加过来,进行“添加列”的集合运算.UNION是以行(纵向)为单位进行操作 ...
- Dynamics CRM - 如何通过 C# Plugin 给 Contact的 主键(FullName)赋值
Contact 是 CRM 默认带有的 Entity,主键是 <FullName>,根据开发需求,与主键相关的字段都被设置成隐藏,包括了<Full Name>,<Firs ...
- CMake常用变量
CMake变量 CMake共用七种变量,如下所示: 目录: ()提供信息的变量. ()控制变量. ()描述系统的变量. ()控制构建过程的变量. ()语言变量. ()CTest变量. (7)CPack ...
- 85.常用的返回QuerySet对象的方法使用详解:defer,only
defer(),only(): 这两个方法都会返回一个"QuerySet"对象,并且这个"QuerySet"中装的是模型,不像values()和values_l ...
- 手把手教你入门Yii2框架-1
前言概述: 我是一名PHP开发工程师,最拿手的是版本2.0的Yii框架,在培训班里老师没教我Yii框架,只是由于我弟弟(同行)擅长Yii框架,所以我用得最多的就是Yii2.0,后台我学了ThinkPH ...
- Mybatis 使用分页查询亿级数据 性能问题 DB使用ORACLE
一般用到了mybatis框架分页就不用自己写了 直接用RowBounds对象就可以实现,但这个性能确实很低 今天我用到10w级得数据分页查询,到后面几页就迭代了很慢 用于记录 1.10万级数据如下 [ ...
- 优秀的github java项目
转载:https://www.zhihu.com/question/24834285/answer/251369977 biezhi/blade:先推荐下自己的哈哈,一款轻量级.高性能.简洁优雅的MV ...
- 关于shopee平台接口(php)对接示例
2018年8月之后,shopee开始使用新接口,需要进行授权操作 1.授权 public function getAuth(){ /** * @param ShopApiShopee $model * ...
- js 选中div中的文本
function selectText(element) { var text = document.getElementById(element); if (document.body.create ...
- Hibernate(四)--延迟加载(lazyload)
hibernate中的延迟加载(lazyload)分属性的延迟加载和关系的延迟加载 属性的延迟加载: 当使用load的方式来获取对象的时候,只有访问了这个对象的属性,hibernate才会到数据库中进 ...