js 正则过滤特殊字符[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]

2020-02-22 17:33:15

   JavaScript利用正则表达式过滤特殊字符,关键之处是正则表达式的正确性和完整性,保证常见特殊字符都可以过滤掉。

      但是,这个正则表达式有一个弊端,不能过滤掉“\”特殊字符。

我们也职能通过 indexOf来检测里面有没有\字符,判断两次呗。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>javaScript过滤特殊字符</title>
<style type="text/css">
	body{  
        width:80%;  
        background-color:#FFC;  
        height:100px;  
        font-size:14px;  
        font-family:"Times New Roman", 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, "Times New Roman", 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>
<script type="text/javascript">
 /**  
      * 过滤字符串函数  
      **/  
    function filterStr(str)  
    {  
        var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]");  
        var specialStr = "";  
        for(var i=0;i<str.length;i++)  
        {  
             specialStr += str.substr(i, 1).replace(pattern, '');   
        }  
        return specialStr;  
    }  
      
    /**  
      * 检测过滤字符串函数  
      **/  
    function checkStr()  
    {  
        var str = document.getElementById("pContent").innerHTML;  
        alert("过滤之前的字符串:" + str);  
        str = filterStr(str);  
        alert("过滤之后的字符串:" + str);  
    }  
</script>
</head>
 
<body>
<div id="div1">
<p id="pContent">张三huhnjhj$%$^%^%&^*&<>?{}{{[]()_+|@~`$378748hyfgtyt35451fdhjdsh&%^^&$#%%&^^*&(*%$%$f4857485
</p>
<input type="button" id="btn" name="btn" value="过滤" οnclick="checkStr()"/>  
</div>
</body>	
</html>


  • 2018-01-18 11:26:53

    浅谈js运行机制(线程)

    从开始接触js时,我们便知道js是单线程的。单线程,异步,同步,互调,阻塞等。在实际写js的时候,我们都会用到ajax,不管是原生的实现,还是借助jQuery等工具库实现,我们都知道,ajax可以实现局部刷新,并且在请求处理时,任然可以响应用户的操作,比如点击事件。不是说js是单线程吗?这些都是怎么实现的? 在阅读《深入理解Bootrap的源码》一书,在分析轮播组件(carousel.js)的源码时,作者对一句代码操作的注释引起了我的兴趣。

  • 2018-01-18 17:41:05

    Fatal error: Class 'Memcached' not found

    从别地方复制来了新的配置文件,包了这样的错误,因为我也是刚刚安装了php7,以为是php的问题,于是就根据网上的提示,安装memcached.dll包。

  • 2018-01-20 20:33:58

    PHP中session_cache_limiter() 是什么意思啊

    session_cache_limiter('public'); session_cache_expire(30); session_start();第三个我晓得 前两个 网络上没找着资料 手册上全是英文的 翻译后 还是看不懂主要是没翻译正确