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实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
URL地址中的#符号使用说明
Feb 12 Javascript
用js判断页面是否加载完成实现代码
Dec 11 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
AngularJS基础知识笔记之表格
May 10 Javascript
老司机带你解读jQuery插件开发流程
May 16 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
使用vue制作FullPage页面滚动效果
Aug 21 Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 Javascript
Layui实现带查询条件的分页
Jul 27 Javascript
通过实例了解JS 连续赋值
Sep 24 Javascript
Vue全家桶入门基础教程
May 14 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
色色整理的PHP面试题集锦
2012/03/08 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
JavaScript中的细节分析
2012/06/30 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
sails框架的学习指南
2014/12/22 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
javascript每日必学之继承
2016/02/23 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
详解python基础之while循环及if判断
2017/08/24 Python
Django web框架使用url path name详解
2019/04/29 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
自学python用什么系统好
2020/06/23 Python
接口中的方法可以是abstract的吗
2015/07/23 面试题
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
颐和园英文导游词
2015/01/30 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
初三英语教学反思
2016/02/15 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL