JS采用ActiveXObject实现用户在提交表单时屏蔽敏感词的功能

本例中敏感词ciku.txt放在C盘根目录下,采用的ActiveXObject插件获取本地文件内容。使用此插件不需网上下插件,直接用如下js代码即可。

浏览器需修改interner安全选项的级别,启用ActiveX才能获取到代码中的ActiveXObject插件。如下图所示:

js代码实现如下:

 1     <script type="text/javascript">
 2         // -------------- 全局变量,用来判断文本域中是否包含脏词,默认为false,即不包含脏词-------
 3         var isDirty = false;
 4         //使用ActiveX读取本地文件获取dirtyword词库
 5         function readFile(){
 6             //var ForReading = 1;
 7             var fso = new ActiveXObject("Scripting.FileSystemObject");
 8             openF = fso.OpenTextFile("c:\\ciku.txt", 1);
 9             var cikuStr= openF.ReadAll();
10             return cikuStr;
11         }
12         /*
13         * 提交表单的主方法
14         * 在提交表单的时候对内容进行过滤并在文本域显示过滤后的内容
15         */
16         function submitForm1() {
17             var messageValue=document.getElementById("message").value;
18             var cikuStr=readFile();
19             var cikuArr= new Array();                                 //定义数组,存储敏感词
20             cikuArr=cikuStr.split(" ");                             //敏感字符分割
21             for (var i=0;i<cikuArr.length;i++){
22                 var flag=cikuArr[i];
23                 if(messageValue.indexOf(flag)>=0){                    //查找文本域中是否包含敏感字符,是则替换
24                     filterWord(messageValue);
25                     var ifs=confirm("你的留言中含有不恰当的词语,系统已自动为你修改,是否继续提交?");
26                     break;
27                 }else{                                                //无敏感字符,直接提交表单
28                     document.getElementById("message_board").submit();
29                     break;
30                 }
31             }
32             if(ifs){                                                //用户点击确定,则提交表单
33                 document.getElementById("message_board").submit();
34             }
35         }
36         /*
37         * 对传进来的messageValue过滤并返回新内容
38         */
39         function filterWord(messageValue){
40             // 根据文本域的id获取文本域对象内容
41             var cikuStr=readFile();
42             var cikuArr= new Array();                                 //定义数组,存储敏感词
43             cikuArr=cikuStr.split(" ");                             //敏感字符分割到数组内
44             for (var i=0;i<cikuArr.length;i++){
45                 messageValue=filterOneWord(messageValue,cikuArr[i]);//filterOneWord函数每次替换一个字符,需循环调用
46             }
47             document.getElementById("message").value=messageValue;  //将替换后的内容显示到文本域中
48         }
49         /*
50         * 这个函数用来过滤单个词语, 如果messageValue中含有oneDirtyWord, 则用"**"替换这个oneDirtyWord
51         * messageValue --- 要过滤的语句
52         */
53         function filterOneWord(messageValue,oneDirtyWord){
54             var str=messageValue.replace(new RegExp(oneDirtyWord,‘g‘),"**");
55             return str;
56         }
57      </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>
时间: 2024-10-13 02:18:33

JS采用ActiveXObject实现用户在提交表单时屏蔽敏感词的功能的相关文章

提交表单时如何保留多个空格及换行的文本样式

需求是:用户提交表单时屏蔽敏感词的功能.其中敏感词来自服务器端同一路径下的ciku.txt,敏感词通过"|"连接,例如"g|c|a",提交表单时替换敏感词,更重要的是,需要保持表单文本域中用户输入的多个空格及换行的样式,并原样输出.php代码如下: 1 <?php 2 header("Content-type:text/html;charset=utf-8"); 3 if($_POST){ 4 $pattern = array( 5 '/

php防止用户重复提交表单

我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 效果图: 那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手: 首先从前端做限制.前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效. 第二,我们可以在提交后做redirect页面重定向,

JavaWeb网上图书商城完整项目--day02-4.regist页面提交表单时对所有输入框进行校验

1.现在我们要将table表中的输入的参数全部提交到后台进行校验,我们提交我们是按照表单的形式提交,所以我们首先需要在table表外面添加一个表单 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core&

submit()提交表单时,显示警示框

我同事在实现submit()提交表单时,想要页面弹出警示框. 但是折腾了几小时后发现,submit()始终不执行. 她的代码如下: $(document).ready(function(){ $("button").click(function(){ $("form").submit(function(e){ alert("Submitted"); }); }); }); 在点击'button'时,给form表单绑定了一个submit事件,并没有

KindEditor:Ajax提交表单时获取不到HTML内容

当用Ajax提交表单时,KindEditor的内容获取不到,HTML数据获取不了 原因:当ajax提交时,KindEdito的HTML数据还没有同步到表单中来,那怎么去获取HTML数据呢? --------------------------------------------------- KindEditor 4.x documentation:获取HTML数据 // 取得HTML内容html = editor.html(); // 同步数据后可以直接取得textarea的valueedit

vue.js中 ,回车键实现登录或者提交表单!

vue的功能非常强大,但是我们作为一个后端开发人员,前端的东西不一定都弄的很明白,今天就给大家介绍一个回车提交表单的真实案例,达到回车登录的效果! @ keyup.enter 实现的效果 <input v-model = "password" type="password" name="" class="pwd" placeholder="密码" @keyup.enter="handello

Ajax提交表单时验证码自动验证 php后端验证码检测

本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码. 1.前端代码 index.html <!DOCTYPE html> <html> <head> <title>验证码提交自验证</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta htt

调用window.showModalDialog(),不能调用window.location.reload()和提交表单时打开新窗口的解决方案

我们往往会遇到这种情况,就是用 window.showModalDialog弹出的窗口,在里面提交form表单时,或者location.href=""时,都会新弹出窗口,很恶心的. 注:showModalDialog窗口与window.open打开的窗口刷新本窗口时不同,showModalDialo窗口也不能用F5刷新,也没有右 键操作 建议采用以下方式: A. 在模式窗口页面中加入:      <base target="_self"> //在html

提交表单时的等待(loading)效果

$(document).ready(function () { $("body").prepend('<div id="overlay" class="ui-widget-overlay" style="z-index: 999999; display: none;"></div>');  //背景透明图 $("body").prepend("<div id='Ple