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 相关文章推荐
JS类中定义原型方法的两种实现的区别
Mar 08 Javascript
javascript实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
javascript打开新窗口同时关闭旧窗口
Jan 16 Javascript
js 弹出菜单/窗口效果
Oct 30 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
JS delegate与live浅析
Dec 21 Javascript
jquery map方法使用示例
Apr 23 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
jsTree使用记录实例
Dec 01 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 Javascript
Ajax请求超时与网络异常处理图文详解
May 23 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利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
prototype1.4中文手册
2006/09/22 Javascript
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
Node.js事件驱动
2015/06/18 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
解决yum对python依赖版本问题
2019/07/05 Python
python操作excel让工作自动化
2019/08/09 Python
Python处理session的方法整理
2019/08/29 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
python支持多继承吗
2020/06/19 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
do you have any Best Practice for testing
2016/06/04 面试题
护士演讲稿范文
2014/01/05 职场文书
写给老师的表扬信
2014/01/21 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL