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 Ext JS 状态默认存储时间
Feb 15 Javascript
javascript 在firebug调试时用console.log的方法
May 10 Javascript
JS实现简易图片轮播效果的方法
Mar 25 Javascript
javascript中attachEvent用法实例分析
May 14 Javascript
javascript事件委托的用法及其好处简析
Apr 04 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
jQuery删除当前节点元素
Dec 07 Javascript
jQuery替换节点元素的操作方法
Mar 18 jQuery
Angular刷新当前页面的实现方法
Nov 21 Javascript
微信小程序实现联动选择器
Feb 15 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
Nov 03 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 管理系统程序中的后门
2009/08/05 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
php源码的使用方法讲解
2019/09/26 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
简单JS代码压缩器
2006/10/12 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
jQuery代码优化方法总结
2018/01/29 jQuery
对Angular中单向数据流的深入理解
2018/03/31 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
Python 可爱的大小写
2008/09/06 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
写好自荐信的要点
2013/11/06 职场文书
汇源肾宝广告词
2014/03/20 职场文书
技术入股合作协议书
2014/10/07 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
小学教学工作总结2015
2015/05/13 职场文书
员工手册编写范本
2015/05/14 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
python如何进行基准测试
2021/04/26 Python
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL