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学习笔记(六) Date 日期类型
Jun 19 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
制作jquery遮罩层效果导航菜单代码分享
Dec 25 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 Javascript
js实现各种复制到剪贴板的方法(分享)
Oct 27 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 Javascript
JS库之Waypoints的用法详解
Sep 13 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 Javascript
微信小程序 网络通信实现详解
Jul 23 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 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破解防盗链图片的一个简单方法
2014/06/07 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
python继承和抽象类的实现方法
2015/01/14 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python3数字求和的实例
2019/02/19 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
python 获取等间隔的数组实例
2019/07/04 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
个人综合鉴定材料
2014/05/23 职场文书
班级标语大全
2014/06/21 职场文书
红色经典电影观后感
2015/06/18 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书