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 学习笔记(十二) dom
Jan 21 Javascript
JQuery选择器特辑 详细小结
May 14 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
Jun 29 Javascript
在Mac下彻底卸载node和npm的方法
May 16 Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
js replace替换字符串同时替换多个方法
Nov 27 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
Vue监视数据的原理详解
Feb 24 Vue.js
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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php 移除数组重复元素的一点说明
2008/11/27 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php除数取整示例
2014/04/24 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
使用python Django做网页
2013/11/04 Python
用python写asp详细讲解
2013/12/16 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
出纳岗位职责
2013/11/09 职场文书
物流仓管员工作职责
2014/01/06 职场文书
基层工作经历证明
2014/01/13 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
大学军训感言300字
2014/03/09 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
导游词之无锡古运河
2019/11/14 职场文书
青岛市的收音机研制与生产
2022/04/07 无线电