JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能


Posted in Javascript onJune 20, 2017

本例中敏感词ciku.txt放在C盘根目录下,采用的ActiveXObject插件获取本地文件内容。使用此插件不需网上下插件,直接用如下js代码即可。

浏览器需修改interner安全选项的级别,启用ActiveX才能获取到代码中的ActiveXObject插件。如下图所示:

JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能

js代码实现如下:

<script type="text/javascript">
    // -------------- 全局变量,用来判断文本域中是否包含脏词,默认为false,即不包含脏词-------
    var isDirty = false;
    //使用ActiveX读取本地文件获取dirtyword词库  
    function readFile(){    
      //var ForReading = 1; 
      var fso = new ActiveXObject("Scripting.FileSystemObject"); 
      openF = fso.OpenTextFile("c:\\ciku.txt", 1); 
      var cikuStr= openF.ReadAll(); 
      return cikuStr;
    }
    /*
    * 提交表单的主方法
    * 在提交表单的时候对内容进行过滤并在文本域显示过滤后的内容
    */
    function submitForm1() {
      var messageValue=document.getElementById("message").value;
      var cikuStr=readFile();
      var cikuArr= new Array();                 //定义数组,存储敏感词 
      cikuArr=cikuStr.split(" ");               //敏感字符分割          
      for (var i=0;i<cikuArr.length;i++){ 
        var flag=cikuArr[i];
        if(messageValue.indexOf(flag)>=0){          //查找文本域中是否包含敏感字符,是则替换
          filterWord(messageValue);         
          var ifs=confirm("你的留言中含有不恰当的词语,系统已自动为你修改,是否继续提交?");
          break;
        }else{                        //无敏感字符,直接提交表单
          document.getElementById("message_board").submit();
          break;
        }       
      }
      if(ifs){                        //用户点击确定,则提交表单
        document.getElementById("message_board").submit();
      }   
    }
    /*
    * 对传进来的messageValue过滤并返回新内容    
    */
    function filterWord(messageValue){
      // 根据文本域的id获取文本域对象内容
      var cikuStr=readFile();
      var cikuArr= new Array();                 //定义数组,存储敏感词 
      cikuArr=cikuStr.split(" ");               //敏感字符分割到数组内        
      for (var i=0;i<cikuArr.length;i++){ 
        messageValue=filterOneWord(messageValue,cikuArr[i]);//filterOneWord函数每次替换一个字符,需循环调用
      }     
      document.getElementById("message").value=messageValue; //将替换后的内容显示到文本域中  
    }
    /*
    * 这个函数用来过滤单个词语, 如果messageValue中含有oneDirtyWord, 则用"**"替换这个oneDirtyWord
    * messageValue --- 要过滤的语句
    */
    function filterOneWord(messageValue,oneDirtyWord){        
      var str=messageValue.replace(new RegExp(oneDirtyWord,'g'),"**");
      return str;          
    }
   </script>

     表单部分代码:

<body>
  <form name="message_board" id="message_board" action="aaa.html">
    <textarea name="message" id="message" cols="50" rows="10">
"This is you post messsage"
——phpdream 
    </textarea><br/>
    <input type="button" value="提交留言" id="submitMessage" onclick="submitForm1()"/>
  </form>
</body>
Javascript 相关文章推荐
javascript String 对象
Apr 25 Javascript
ie9 提示'console' 未定义问题的解决方法
Mar 20 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
May 19 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
Aug 29 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
js,jq,css多方面实现简易下拉菜单功能
May 13 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
May 11 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 Javascript
Vue微信公众号网页分享的示例代码
May 28 Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 #Javascript
详解vue-resource promise兼容性问题
Jun 20 #Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 #Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 #Javascript
vue中如何实现变量和字符串拼接
Jun 19 #Javascript
js实现随机数字字母验证码
Jun 19 #Javascript
解决vue-cli中stylus无法使用的问题方法
Jun 19 #Javascript
You might like
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
ie focus bug 解决方法
2009/09/03 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
python多任务及返回值的处理方法
2019/01/22 Python
python实现XML解析的方法解析
2019/11/16 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
超市促销实习自我鉴定
2013/09/23 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
高老头读书笔记
2015/06/30 职场文书
学雷锋活动简报
2015/07/20 职场文书
企业安全生产检查制度
2015/08/06 职场文书