js 正则过滤特殊字符?
//验证特殊字符functionillegalChar(str){varpattern=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;if(p...
//验证特殊字符
function illegalChar(str)
{
var pattern=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
if(pattern.test(str)){
return false;
}
return true;
}
上面这段函数是判断str是不是特殊字符的,如果我想动态传入一个参数字符,如果这个参数字符包含在特殊字符里面,就放行。谢谢!
没有人知道吗?比如说我传入一个参数字符@! 这这两字符时应该从特殊字符列表去掉,应该放行。如果没有传参,默认就是var pattern=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;都是特殊字符列表。 展开
function illegalChar(str)
{
var pattern=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
if(pattern.test(str)){
return false;
}
return true;
}
上面这段函数是判断str是不是特殊字符的,如果我想动态传入一个参数字符,如果这个参数字符包含在特殊字符里面,就放行。谢谢!
没有人知道吗?比如说我传入一个参数字符@! 这这两字符时应该从特殊字符列表去掉,应该放行。如果没有传参,默认就是var pattern=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;都是特殊字符列表。 展开
4个回答
展开全部
您好
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," ");
结果: "这是。一,个,包 含 特殊、字符的字 符串可以使用正 则表达式 去除其 中的特 殊字 符"
结果: "这是。一,个,包$!含#特殊、字符的字^&/*符串可以使用正$则表达式[]去除其{中的特}殊字|符"
string1.replace(/\^|\.|\*|\?|\!|\/|\\|\$|\#|\&|\||,|\[|\]|\{|\}|\(|\)|\-|\+|\=/g," ");
结果: "这是。一,个,包 含 特殊、字符的字 符串可以使用正 则表达式 去除其 中的特 殊字 符"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是正则写的有问题啊。
function illegalChar(str)
{
var pattern=/[`~!@#\$%\^\&\*\(\)_\+<>\?:"\{\},\.\\\/;'\[\]]/im;
if(pattern.test(str)){
return false;
}
return true;
}
alert(illegalChar("123?"));
应该就这样啊
function illegalChar(str)
{
var pattern=/[`~!@#\$%\^\&\*\(\)_\+<>\?:"\{\},\.\\\/;'\[\]]/im;
if(pattern.test(str)){
return false;
}
return true;
}
alert(illegalChar("123?"));
应该就这样啊
追问
正则是没有问题的,patter包含的是特殊字符,我的意思是想这样传参illegalChar('@!') 那@!就从特殊字符列表去除掉,可以放行。如果不传参,默认就是用特殊字符列表。其实就是一个字符串替换,pattern.replace(你的参数,‘’);但是这样不行,js报错,不知道为什么?
追答
你不行的话举个例子吧,我先按我理解的来啊。
function illegalChar(str){
var strPattern="`~!@#\$%\^\&\*\(\)_\+\?:\"\{\},\.\\\/;'\[\]";
for(var i=0;i
你先看看,基本是这个思路。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你 个参考 :(其中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;
}
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;
}
更多追问追答
追问
不行啊,reg = reg.replace(param,'');这个根本就没剔除过滤的字符,还是原来的字符?太奇怪了。
追答
这个:
function illegalChar(str,param)
{
var reg = "[`~!@#\$%\^&\*\(\)_\+\?:\"{},\.\/;'\[\\]]";
if(param){
for(var i=0;i<param.length;i++){
reg = reg.replace(param[i],'');
}
}
var pattern=new RegExp(reg,'im');
if(pattern.test(str)){
return false;
}
return true;
}
测试:
illegalChar('@','@!');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询