博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js过滤特殊字符
阅读量:4054 次
发布时间:2019-05-25

本文共 2618 字,大约阅读时间需要 8 分钟。

转自:http://blog.csdn.net/you23hai45/article/details/21120119

JavaScript过滤特殊字符

1、设计实例

[html] 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>JavaScript过滤特殊字符</title>  
  6. <style type="text/css">  
  7.     body{  
  8.         width:80%;  
  9.         background-color:#FFC;  
  10.         height:100px;  
  11.         font-size:14px;  
  12.         font-family:"Times New Roman", Times, serif;  
  13.         font-stretch:expanded;  
  14.         font-style:inherit;  
  15.         font-variant:inherit;  
  16.         font-weight:bold;  
  17.     }  
  18.     #div1{  
  19.         text-align:center;  
  20.         width:100%;  
  21.         height:100%;  
  22.         line-height:inherit;  
  23.     }  
  24.     #btn{  
  25.         font:Georgia, "Times New Roman", Times, serif;  
  26.         font-size-adjust:inherit;  
  27.         font-weight:bold;  
  28.         background-color:#C96;  
  29.         alignment-adjust:after-edge;  
  30.         alignment-baseline:baseline;  
  31.         word-break:break-all;  
  32.         width:120px;  
  33.         height:30px;  
  34.         font-size:16px;  
  35.         animation:ease;  
  36.     }  
  37. </style>  
  38. <script type="text/javascript">  
  39.     /**  
  40.       * 过滤字符串函数  
  41.       **/  
  42.     function filterStr(str)  
  43.     {  
  44.         var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]");  
  45.         var specialStr = "";  
  46.         for(var i=0;i<str.length;i++)  
  47.         {  
  48.              specialStr += str.substr(i, 1).replace(pattern, '');   
  49.         }  
  50.         return specialStr;  
  51.     }  
  52.       
  53.     /**  
  54.       * 检测过滤字符串函数  
  55.       **/  
  56.     function checkStr()  
  57.     {  
  58.         var str = document.getElementById("pContent").innerHTML;  
  59.         alert("过滤之前的字符串:" + str);  
  60.         str = filterStr(str);  
  61.         alert("过滤之后的字符串:" + str);  
  62.     }  
  63. </script>  
  64. </head>  
  65.   
  66. <body>  
  67.    <div id="div1">  
  68.       <p id="pContent">张三huhnjhj$%$^%^%&^*&<>?{}{
    {[]()_+|@~`$378748hyfgtyt35451fdhjdsh&%^^&$#%%&^^*&(*%$%$f4857485
    </p>  
  69.       <input type="button" id="btn" name="btn" value="过滤" onclick="checkStr()"/>  
  70.    </div>  
  71. </body>  
  72. </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))

你可能感兴趣的文章
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql truncate (清除表数据)
查看>>
yuv to rgb 转换失败呀。天呀。谁来帮帮我呀。
查看>>
yuv420 format
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt 创建异形窗体
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
Qt继电器控制板代码
查看>>
wpa_supplicant控制脚本
查看>>
gstreamer相关工具集合
查看>>
RS232 四入四出模块控制代码
查看>>
linux 驱动开发 头文件
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
网络视频服务器移植
查看>>