2013-08-02 61 views
1

我一直在学习正则表达式是如何工作的,这对我来说非常棘手。我想从输入字段验证下面的字符。基本上,如果字符串包含任何字符,alert('bad chars')注册表达验证/ #&字符

  1. /
  2. \
  3. &

我发现这个代码,但是当我改变它周围似乎没有上班。我如何改变这些代码以满足我的需求?

var str = $(this).val(); 
if(/^[a-zA-Z0-9- ]*$/.test(str) == false) { 
    alert('bad'); 
    return false; 
} else { 
    alert('good'); 
} 
+7

你通过验证的意思,确保它们的存在,确保它们不存在,含有一定量的,包含所有,含有一定的顺序等等 – Matthew

+1

这里有一个参考,帮助理解正则表达式的代码。 [Google Regex Explainer。](http://regex-explain.googlecode.com/hg/explain.html#^ [a-zA-Z0-9-%20] *%24) – Enigmadan

+0

基本上如果字符串包含这些字符alert ('bad chars') – ifelse

回答

1

/^[a-zA-Z0-9- ]*$/意味着:

  • ^字符串必须这里
  • [a-zA-Z0-9- ]启动大写或小写az之间的信09,破折号(-)和空间之间的一个数字。
  • *重复0次或更多次
  • $字符串必须在此结束。

在“任何字符但”的情况下,您可以使用^像这样:/^[^\/\\#&]*$/。如果这符合真的,那么它没有任何这些字符。 ^右后[意味着匹配任何不是以下

1

你可以只尝试以下操作:

if("/[\\/#&]/".test(str) == true) { 
    alert('bad'); 
    return false; 
} else { 
    alert('good'); 
} 

注:我不是100%是什么字符需要在JavaScript与.NET正则表达式中逃了出来,但基本上,我在说如果你的字符串包含\,/,#&中的任何字符,则警告'不好'。

+0

[Javascript](http://regex-explain.googlecode.com/hg/explain.html# [\\ /%23%26])只需要'\'转义。 – Enigmadan

+0

@Enigmadan:啊,很好。感谢那! – fourpastmidnight

+0

,当然,'\'没有出现,因为它需要被转义... Javascript要求字符'\'被转义。 – Enigmadan