jsフィルタ特殊文字


回転:http://blog.csdn.net/you23hai45/article/details/21120119
JavaScript特殊文字のフィルタ
1、設計例
[html  view plain copy
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">>  
>  
  
  
JavaScriptフィルタ特殊文字title>   </li> <br><style type="text/css">   </li> <br>    body{   </li> <br>        width:80%;   </li> <br>        background-color:#FFC;   </li> <br>        height:100px;   </li> <br>        font-size:14 px   </li> <br>        font-family:"Times New Roman", Times, serif;   </li> <br>        font-stretch:expanded;   </li> <br>        font-style:inherit;   </li> <br>        font-variant:inherit;   </li> <br>        font-weight:bold;   </li> <br>    }   </li> <br>    #div1{   </li> <br>        text-align:center;   </li> <br>        width:100%;   </li> <br>        height:100%;   </li> <br>        line-height:inherit;   </li> <br>    }   </li> <br>    #btn{   </li> <br>        font:Georgia, "Times New Roman", Times, serif;   </li> <br>        font-size-adjust:inherit;   </li> <br>        font-weight:bold;   </li> <br>        background-color:#C96;   </li> <br>        alignment-adjust:after-edge;   </li> <br>        alignment-baseline:baseline;   </li> <br>        word-break:break-all;   </li> <br>        width:120px;   </li> <br>        height:30px;   </li> <br>        font-size:16px;   </li> <br>        animation:ease;   </li> <br>    }   </li> <br>style>   </li> <br><script type="text/javascript">   </li> <br>    /**   </li> <br>      * 文字列関数のフィルタ   </li> <br>      **/   </li> <br>    function filterStr(str)   </li> <br>    {   </li> <br>        var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'.,、?%+_]");   </li> <br>        var specialStr = "";   </li> <br>        for(var i=0;i<str.length;i++)   </li> <br>        {   </li> <br>             specialStr += str.substr(i, 1).replace(pattern, '');    </li> <br>        }   </li> <br>        return specialStr;   </li> <br>    }   </li> <br>       </li> <br>    /**   </li> <br>      * フィルタ文字列関数の検出   </li> <br>      **/   </li> <br>    function checkStr()   </li> <br>    {   </li> <br>        var str = document.getElementById("pContent").innerHTML;   </li> <br>        alert(「フィルタ前の文字列:」 + str);   </li> <br>        str = filterStr(str);   </li> <br>        alert(「フィルタ後の文字列:」 + str);   </li> <br>    }   </li> <br>script>   </li> <br>head>   </li> <br>   </li> <br><body>   </li> <br>   <div id="div1">   </li> <br>      <p id="pContent">張三huhnjhj$%$^%^%&^*&<>?{{[[]()+|@~`$378748 hyfgyt 35451 fdhjdsh&%^&$%&^*&(*%$%$f 4857485 p>   </li> <br>      <input type="button" id="btn" name="btn" value=フィルタ onclick="checkStr()"/>   </li> <br>   div>   </li> <br>body>   </li> <br>html>   </li> <br>2、設計結果<br>(1)初期化時<br><a href="https://img.md5.com/image/info8/d784f464bb144995bf95e1ec5a99e86a.jpg" rel="noreferrer noopener nofollow"><img src="https://s1.md5.ltd/image/56545b82c325c56e5ad9f966d710dd8e.jpg" width="650" height="72" alt="" style="border:none;" class="check_url_is_full"/></a><br>(2)「フィルタ」ボタンをクリック<br><a href="https://img.md5.com/image/info8/12066216d0084b7d820412d01e986b1a.jpg" rel="noreferrer noopener nofollow"><img src="https://s1.md5.ltd/image/3df1b21503996cadbc6a53edcbb6cbd1.jpg" width="650" height="227" alt="js过滤特殊字符_第1张图片" style="border:none;;border:1px solid black;" class="check_url_is_full"/></a><br>(3)「OK」ボタンをクリックした後<br><a href="https://img.md5.com/image/info8/5a5726cd2dba485b8e522242e41a34b9.jpg" rel="noreferrer noopener nofollow"><img src="https://s1.md5.ltd/image/884c73734ff763b38dd7022f73cbdbd3.jpg" width="650" height="253" alt="js过滤特殊字符_第2张图片" style="border:none;;border:1px solid black;" class="check_url_is_full"/></a><br>3、説明<br>     JavaScriptは正規表現で特殊文字をフィルタリングします.肝心な点は正規表現の正確性と完全性で、よくある特殊文字がフィルタリングできることを保証します.<br>      しかし、この正規表現には「」という特殊文字をフィルタリングできないという弊害がある.<br>カスタム:<br>chromeブラウザでjs正規表現の簡単なテストを行うことができます.<pre><code>匹配数字: (/^([0-9]+)$/.test("123")) 匹配非数字: (/^([^\d]+)$/.test("123")) 非数字非*号 (/^([^\d\*]+)$/.test("123abc*")) false (/^([^\d\*]+)$/.test("abc*")) false (/^([^\d\*]+)$/.test("abc")) true 不能是以下特殊符号: [`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_] (/^([^\~\!\@\#\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\.\/]+)$/.test("abc")) (/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\.\\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+\_]+)$/.test("abc")) true s1 = "abc\"test\"" "abc"test"" s1 "abc"test"" (/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\.\\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+\_]+)$/.test(s1)) false 上述特殊符号中允许使用\.\_\- (/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+]+)$/.test(s1)) </code></pre>