天天看點

JS中過濾HTML文本腳本片段

 要求選中的文本塊要不能有HTML代碼字元,同時要滿足常見文本的字元,如标點符号、英文标點、鍵盤上的上檔符、中文的其他符号,即常見的查詢句子,詞語、書名等要可以提供搜尋。

 初稿腳本:

function getSel() 

      var txt = ''; 

      var foundIn = ''; 

      if(window.getSelection) 

      { 

          txt = window.getSelection(); 

          foundIn = 'window.getSelection()'; 

      }else if(document.getSelection) 

          txt = document.getSelection(); 

          foundIn = 'document.getSelection()'; 

      }else if(document.selection) 

          txt = document.selection.createRange().htmlText; 

          foundIn = 'document.selection.createRange()'; 

      }else 

          return; 

     document.getElementById("selectTxt").value = txt; 

function specialCharacters(obj){    

      var value = obj.value; 

     // alert('驗證前:'+value); 

      var patrn=/^[0-9a-zA-Z\u4e00-\u9fa5+\.+\《》]+$/; 

      if (patrn.test(value)) {       

            return true;       

      } else{      

            alert("選中文字為非純文字,其中含有特殊字元,請重選。");       

            return false;       

      }   

}  

function selectKM(){ 

    getSel(); 

    if(event.button==2){ 

    try{ 

        var content = document.getElementById("selectTxt").value; 

        content = content.replace(/^\n+|\n+$/g,""); 

        content = content.replace(/<\/?.+?>/g,"");  

        content = content.replace(/[\r\n]/g, "");  

        content = content.replace(/\s+/g,""); 

        content = content.replace(""",""); 

        content = content.replace("\"",""); 

        content = content.replace(" ",""); 

        content = content.replace("^",""); 

        content = content.replace("!=",""); 

        content = content.replace("{",""); 

        content = content.replace(";",""); 

        content = content.replace("?",""); 

        content = content.replace("'",""); 

        content = content.replace("\\",""); 

        content = content.replace("/",""); 

        content = content.replace("[]",""); 

        content = content.replace("*",""); 

        content = content.replace("(",""); 

        content = content.replace(")",""); 

        content = content.replace("{}",""); 

        content = content.replace(/%/g,""); 

        content = content.replace("?",""); 

        content = content.replace("$",""); 

        content = content.replace("#",""); 

        content = content.replace("&",""); 

        content = content.replace("@",""); 

        content = content.replace("}",""); 

        content = content.replace("|",""); 

        content = content.replace("¥",""); 

        var contentPreVai = content; 

        content = content.replace("——",""); 

        content = content.replace("—",""); 

        content = content.replace(".",""); 

        content = content.replace(",",""); 

        content = content.replace(/。/g,""); 

        content = content.replace(/,/g,""); 

        content = content.replace("!",""); 

        content = content.replace(";",""); 

        content = content.replace("‘",""); 

        content = content.replace("’",""); 

        content = content.replace(/、/g,""); 

        content = content.replace("【",""); 

        content = content.replace("】",""); 

        content = content.replace(":",""); 

        content = content.replace("“",""); 

        content = content.replace("”",""); 

        content = content.replace("《",""); 

        content = content.replace("》",""); 

        content = content.replace("……",""); 

        document.getElementById("selectTxt").value = content; 

        var vail = specialCharacters(document.getElementById("selectTxt")); 

        if(contentPreVai.length>0 && vail == true){ 

        //if(contentPreVai.length>0 ){ 

        //alert(contentPreVai); 

            createMenu(contentPreVai); 

        } 

        return; 

       }catch(e){} 

    } 

     本文轉自danni505 51CTO部落格,原文連結:http://blog.51cto.com/danni505/1078224,如需轉載請自行聯系原作者

繼續閱讀