js 正则过滤特殊字符?

JavaScript025

js 正则过滤特殊字符?,第1张

您好

js检查是否含有非法字符,js 正则过滤特殊字符

//正则

function trimTxt(txt){

 return txt.replace(/(^\s*)|(\s*$)/g, "")

}

 

/**

 * 检查是否含有非法字符

 * @param temp_str

 * @returns {Boolean}

 */

function is_forbid(temp_str){

    temp_str=trimTxt(temp_str)

temp_str = temp_str.replace('*',"@")

temp_str = temp_str.replace('--',"@")

temp_str = temp_str.replace('/',"@")

temp_str = temp_str.replace('+',"@")

temp_str = temp_str.replace('\'',"@")

temp_str = temp_str.replace('\\',"@")

temp_str = temp_str.replace('$',"@")

temp_str = temp_str.replace('^',"@")

temp_str = temp_str.replace('.',"@")

temp_str = temp_str.replace('',"@")

temp_str = temp_str.replace('<',"@")

temp_str = temp_str.replace('>',"@")

temp_str = temp_str.replace('"',"@")

temp_str = temp_str.replace('=',"@")

temp_str = temp_str.replace('{',"@")

temp_str = temp_str.replace('}',"@")

var forbid_str=new String('@,%,~,&')

var forbid_array=new Array()

forbid_array=forbid_str.split(',')

for(i=0i<forbid_array.lengthi++){

if(temp_str.search(new RegExp(forbid_array[i])) != -1)

return false

}

return true

}

---------------------

作者:dongsir 董先生

来源:董先生的博客

原文链接:js检查是否含有非法字符

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载时请标注:http://dongsir.cn/p/195

由于特殊字符较多,建议使用白名单进行限制。即,允许输入哪些字符。

var pp = /[^0-9a-zA-Z_]/g //如,仅允许英文字母,数字和下划线。此正则匹配非英文字母,数字和下划线。

var b =  pp.test("lsafie*sjdf") //test函数返回匹配结果。若有非英文字母,数字和下划线,返回true。

alert(b)

1、jQuery使用正则匹配替换特殊字符

function RegeMatch(){

    var pattern = new RegExp("[~'!@#$%^&*()-+_=:]")  

    if($("#name").val() != "" && $("#name").val() != null){  

        if(pattern.test($("#name").val())){  

            alert("非法字符!")  

            $("#name").attr("value","")  

            $("#name").focus()  

            return false  

        }  

    }  

}

2、jQuery限制输入ASCII值

//数字0-9的ascii为48-57

//大写A-Z的ascii为65-90

//小写a-z的ascii为97-122

// ----------------------------------------------------------------------

// <summary>

// 限制只能输入数字和字母

// </summary>

// ----------------------------------------------------------------------

$.fn.onlyNumAlpha = function () {

    $(this).keypress(function (event) {

        var eventObj = event || e

        var keyCode = eventObj.keyCode || eventObj.which

        if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122))

            return true

        else

            return false

    }).focus(function () {

        this.style.imeMode = 'disabled'

    }).bind("paste", function () {

        var clipboard = window.clipboardData.getData("Text")

        if (/^(\d|[a-zA-Z])+$/.test(clipboard))

            return true

        else

            return false

    })

}

//-----调用方法$("#文本框id").onlyNumAlpha()

3、js正则匹配过滤

function stripscript(s) 

    var pattern = new RegExp("[`~!@#$^&*()=|{}':',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]") 

    var rs = "" 

    for (var i = 0 i < s.length i++) { 

        rs = rs+s.substr(i, 1).replace(pattern, '') 

    } 

    return rs 

}