转自:/you23hai45/article/details/2119
JavaScript过滤特殊字符
1、设计实例
[html]view plain copy <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>JavaScript过滤特殊字符</title> <styletype="text/css"> body{ width:80%; background-color:#FFC; height:100px; font-size:14px; font-family:"TimesNewRoman",Times,serif; font-stretch:expanded; font-style:inherit; font-variant:inherit; font-weight:bold; } #div1{ text-align:center; width:100%; height:100%; line-height:inherit; } #btn{ font:Georgia,"TimesNewRoman",Times,serif; font-size-adjust:inherit; font-weight:bold; background-color:#C96; alignment-adjust:after-edge; alignment-baseline:baseline; word-break:break-all; width:120px; height:30px; font-size:16px; animation:ease; } </style> <scripttype="text/javascript"> /** *过滤字符串函数 **/ functionfilterStr(str) { varpattern=newRegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]"); varspecialStr=""; for(vari=0;i<str.length;i++) { specialStr+=str.substr(i,1).replace(pattern,''); } returnspecialStr; } /** *检测过滤字符串函数 **/ functioncheckStr() { varstr=document.getElementById("pContent").innerHTML; alert("过滤之前的字符串:"+str); str=filterStr(str); alert("过滤之后的字符串:"+str); } </script> </head> <body> <divid="div1"> <pid="pContent">张三huhnjhj$%$^%^%&^*&<>?{}{{[]()_+|@~`$378748hyfgtyt35451fdhjdsh&%^^&$#%%&^^*&(*%$%$f4857485</p> <inputtype="button"id="btn"name="btn"value="过滤"onclick="checkStr()"/> </div> </body> </html>
2、设计结果
(1)初始化时
(2)单击“过滤”按钮
(3)单击“确定”按钮后
3、说明
JavaScript利用正则表达式过滤特殊字符,关键之处是正则表达式的正确性和完整性,保证常见特殊字符都可以过滤掉。
但是,这个正则表达式有一个弊端,不能过滤掉“\”特殊字符。
自定义:
在chrome浏览器中可以进行js正则表达式的简单测试:
匹配数字:(/^([0-9]+)$/.test("123"))匹配非数字:(/^([^\d]+)$/.test("123"))非数字非*号(/^([^\d\*]+)$/.test("123abc*"))false(/^([^\d\*]+)$/.test("abc*"))false(/^([^\d\*]+)$/.test("abc"))true不能是以下特殊符号:[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_](/^([^\~\!\@\#\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\.\/]+)$/.test("abc"))(/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\.\<\>\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+\_]+)$/.test("abc"))trues1 = "abc\"test\"""abc"test""s1"abc"test""(/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\.\<\>\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+\_]+)$/.test(s1))false上述特殊符号中允许使用\.\_\-(/^([^\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\"\,\\\[\]\<\>\/\?\~\!\@\#\¥\……\&\*\(\)\——\|\{\}\【\】\‘\;\:\”\“\'\。\,\、\?\%\+]+)$/.test(s1))
如果觉得《js过滤特殊字符》对你有帮助,请点赞、收藏,并留下你的观点哦!