js 正则过滤特殊字符? js中用正则表达式 过滤特殊字符 校验所有输入域是否含有特殊...

作者&投稿:希毕 (若有异议请与网页底部的电邮联系)

您好

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=0;i<forbid_array.length;i++){
if(temp_str.search(new RegExp(forbid_array[i])) != -1)
return false;
}
return true;
}

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

作者:dongsir 董先生 

来源:董先生的博客 

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

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



string1="这是。一,个,包$!含#特殊、字符的字^&/*符串可以\使用正$则表达式[]去除其{中的特}殊字|符"

结果: "这是。一,个,包$!含#特殊、字符的字^&/*符串可以使用正$则表达式[]去除其{中的特}殊字|符"

string1.replace(/\^|\.|\*|\?|\!|\/|\\|\$|\#|\&|\||,|\[|\]|\{|\}|\(|\)|\-|\+|\=/g," ");

结果: "这是。一,个,包 含 特殊、字符的字 符串可以使用正 则表达式 去除其 中的特 殊字 符"

就是正则写的有问题啊。
function illegalChar(str)
{
var pattern=/[`~!@#\$%\^\&\*\(\)_\+<>\?:"\{\},\.\\\/;'\[\]]/im;
if(pattern.test(str)){
return false;
}
return true;
}
alert(illegalChar("123?"));

应该就这样啊

给你 个参考 :(其中param参数为你要过滤的字符)
function illegalChar(str,param)
{
var reg = "[`~!@#\$%\^&\*\(\)_\+<>\?:\"{},\.\/;'\[\\]]";
if(param){
reg = reg.replace(param,'');
}
var pattern=new RegExp(reg,'im');
if(pattern.test(str)){
return false;
}
return true;
}

如何用js或则jquery过滤特殊字符~

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// ----------------------------------------------------------------------// // 限制只能输入数字和字母// // ----------------------------------------------------------------------$.fn.onlyNumAlpha = function () { $(this).keypress(function (event) { var eventObj = event || e; var keyCode = eventObj.keyCode || eventObj.which; if ((keyCode >= 48 && keyCode = 65 && 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; }

由于特殊字符较多,建议使用白名单进行限制。即,允许输入哪些字符。
var pp = /[^0-9a-zA-Z_]/g; //如,仅允许英文字母,数字和下划线。此正则匹配非英文字母,数字和下划线。var b = pp.test("lsafie*sjdf"); //test函数返回匹配结果。若有非英文字母,数字和下划线,返回true。alert(b);