关于js中单词过滤怎么写

民族疯 2015-06-12 05:30:49
其中js的代码如下:
 function noIllegleCharacter(s){
var pattern = /[\b(script|document|eval|CR|LF|)\b]/;
var rs = "";
for (var i = 0; i < s.length; i++){
rs = rs + s.substr(i, 1).replace(pattern, '');
}
alert("过滤后的字符为"+rs);
if(!(rs===s)){
alert("您输入的条件中包含非法字符,请修改!");
return false;
}else{
return true;
}
}
var s = "abs";
if(!noIllegleCharacter(s)){
alert("输入确实有问题");
}else{
alert("输入没问题");
}


写了这个方法后:
1.发现希望仅仅想过滤的单词script,document...
不仅过滤了,还把单词所包含的字母也给过滤了,
希望有一个正则表达式把单词过滤,但不把单词包含的字母过滤,貌似实现方法上也有问题
...全文
299 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
民族疯 2015-06-15
  • 打赏
  • 举报
回复
[quote=引用 2 楼 maguangwithC 的回复:] [quote=引用 1 楼 jslang 的回复:]

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF|)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }

其实我的原问题是过滤这18个特殊字符:
[1] |
[2] &
[3] ;
[4] $
[5] %
[6] @
[7] '
[8] "
[9] 
[10] ()
[11] +
[12] CR
[13] LF
[14] ,
[15] .
[16] script
[17] document
[18] eval
然后我写的正则表达式为:
[code=javascript]var pattern = /[|&;$%@\"\'\s()+,.\b(script|document|eval|CR|LF|)\b]/ig;
最后发现给的单词包含的字母也过滤掉了。
民族疯 2015-06-15
  • 打赏
  • 举报
回复
引用 4 楼 jslang 的回复:
[quote=引用 2 楼 maguangwithC 的回复:] [quote=引用 1 楼 jslang 的回复:]

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF|)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }


哥们,还是不行, 比如我输入abs 它显示为b 字母a和s还是被过滤了! [/quote] 不可能,你的正则表达式没有去掉[]么?

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }

     var s = "abs";
     if(!noIllegleCharacter(s)){
         alert("输入确实有问题");
     }else{
         alert("输入没问题");
     }
     var s = "abs eval;;";
     if(!noIllegleCharacter(s)){
         alert("输入确实有问题");
     }else{
         alert("输入没问题");
     }

[/quote] 哥们你的测试的确可以,但还是有个问题 就是输入 var s = "abs eval;;";中间有个空格,但我把空格去掉后发现eval没有被过滤掉; 哥们,你是做前端的吗,方便加个qq聊吗?我的:479602279
民族疯 2015-06-15
  • 打赏
  • 举报
回复
引用 7 楼 jslang 的回复:
var pattern = /[\|&;$%@\"\'\s\(\)\+,\.]|script|document|eval|CR|LF/ig;
有点6666666啊哥们
天际的海浪 2015-06-15
  • 打赏
  • 举报
回复
var pattern = /[\|&;$%@\"\'\s\(\)\+,\.]|script|document|eval|CR|LF/ig;
天际的海浪 2015-06-14
  • 打赏
  • 举报
回复
引用 2 楼 maguangwithC 的回复:
[quote=引用 1 楼 jslang 的回复:]

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF|)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }


哥们,还是不行, 比如我输入abs 它显示为b 字母a和s还是被过滤了! [/quote] 不可能,你的正则表达式没有去掉[]么?

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }

     var s = "abs";
     if(!noIllegleCharacter(s)){
         alert("输入确实有问题");
     }else{
         alert("输入没问题");
     }
     var s = "abs eval;;";
     if(!noIllegleCharacter(s)){
         alert("输入确实有问题");
     }else{
         alert("输入没问题");
     }

民族疯 2015-06-14
  • 打赏
  • 举报
回复
肿么破啊,求解释
民族疯 2015-06-14
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF|)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }


哥们,还是不行, 比如我输入abs 它显示为b 字母a和s还是被过滤了!
天际的海浪 2015-06-12
  • 打赏
  • 举报
回复

 function noIllegleCharacter(s){
      var pattern = /\b(script|document|eval|CR|LF|)\b/ig;
      var rs = s.replace(pattern, '');
	 alert("过滤后的字符为"+rs);
      if(!(rs===s)){
		 alert("您输入的条件中包含非法字符,请修改!");
		 return false;
	 }else{
		 return true;
	 }
  }


87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧