1. 程式人生 > >JS采用ActiveXObject實現用戶在提交表單時屏蔽敏感詞的功能

JS采用ActiveXObject實現用戶在提交表單時屏蔽敏感詞的功能

使用 安全 lag this 繼續 file oar dex body

本例中敏感詞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>

JS采用ActiveXObject實現用戶在提交表單時屏蔽敏感詞的功能