溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JS使用ActiveXObject實(shí)現(xiàn)用戶提交表單時(shí)屏蔽敏感詞功能

發(fā)布時(shí)間:2020-09-12 01:24:16 來源:腳本之家 閱讀:217 作者:勇往直泉 欄目:web開發(fā)

本例中敏感詞ciku.txt放在C盤根目錄下,采用的ActiveXObject插件獲取本地文件內(nèi)容。使用此插件不需網(wǎng)上下插件,直接用如下js代碼即可。

瀏覽器需修改interner安全選項(xiàng)的級(jí)別,啟用ActiveX才能獲取到代碼中的ActiveXObject插件。如下圖所示:

JS使用ActiveXObject實(shí)現(xiàn)用戶提交表單時(shí)屏蔽敏感詞功能

js代碼實(shí)現(xiàn)如下:

<script type="text/javascript">
    // -------------- 全局變量,用來判斷文本域中是否包含臟詞,默認(rèn)為false,即不包含臟詞-------
    var isDirty = false;
    //使用ActiveX讀取本地文件獲取dirtyword詞庫(kù)  
    function readFile(){    
      //var ForReading = 1; 
      var fso = new ActiveXObject("Scripting.FileSystemObject"); 
      openF = fso.OpenTextFile("c:\\ciku.txt", 1); 
      var cikuStr= openF.ReadAll(); 
      return cikuStr;
    }
    /*
    * 提交表單的主方法
    * 在提交表單的時(shí)候?qū)?nèi)容進(jìn)行過濾并在文本域顯示過濾后的內(nèi)容
    */
    function submitForm1() {
      var messageValue=document.getElementById("message").value;
      var cikuStr=readFile();
      var cikuArr= new Array();                 //定義數(shù)組,存儲(chǔ)敏感詞 
      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("你的留言中含有不恰當(dāng)?shù)脑~語(yǔ),系統(tǒng)已自動(dòng)為你修改,是否繼續(xù)提交?");
          break;
        }else{                        //無敏感字符,直接提交表單
          document.getElementById("message_board").submit();
          break;
        }       
      }
      if(ifs){                        //用戶點(diǎn)擊確定,則提交表單
        document.getElementById("message_board").submit();
      }   
    }
    /*
    * 對(duì)傳進(jìn)來的messageValue過濾并返回新內(nèi)容    
    */
    function filterWord(messageValue){
      // 根據(jù)文本域的id獲取文本域?qū)ο髢?nèi)容
      var cikuStr=readFile();
      var cikuArr= new Array();                 //定義數(shù)組,存儲(chǔ)敏感詞 
      cikuArr=cikuStr.split(" ");               //敏感字符分割到數(shù)組內(nèi)        
      for (var i=0;i<cikuArr.length;i++){ 
        messageValue=filterOneWord(messageValue,cikuArr[i]);//filterOneWord函數(shù)每次替換一個(gè)字符,需循環(huán)調(diào)用
      }     
      document.getElementById("message").value=messageValue; //將替換后的內(nèi)容顯示到文本域中  
    }
    /*
    * 這個(gè)函數(shù)用來過濾單個(gè)詞語(yǔ), 如果messageValue中含有oneDirtyWord, 則用"**"替換這個(gè)oneDirtyWord
    * messageValue --- 要過濾的語(yǔ)句
    */
    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>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI