对于了解正则表达式的人来说,简单的RegEx表达式

时间:2011-04-26 13:45:40

标签: javascript jquery regex validation coldfusion

我对正则表达式知之甚少,所以这对我来说非常具有挑战性。

我有一个表单,我需要确保只包含A-Z或a-z或1-0以及其他一些“已批准”字符和''(空格)。拼写出来时,我只想允许:

`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 /:;,.-()`  

从另一个stackoverflow问题,我确实找到了这个正则表达式:     ^((?:[A-Za-z0-9-'.,@:?!()$#/\\]+|&[^#])*&?)$ 但我认为它允许太多的特殊字符,并且在笔记中,有人评论过c#所以我不确定它是否适用于我试图使用它的方式。我正在使用coldfusion,jquery和javascript。我实际上正在使用一个jQuery插件,我正在尝试为插件添加验证规则(插件是http://bassistance.de/jquery-plugins/jquery-plugin-validation/)。

表单中的无效条目示例如下: MC& I Enterprise 但MC / I是可以接受的

有人能帮忙吗?

3 个答案:

答案 0 :(得分:3)

要开始使用正则表达式练习,您可以考虑下载正则表达式教练:http://weitz.de/regex-coach/这是一个解释正则表达式的免费程序,并允许查看正则表达式解析的工作原理。

您可以开始使用\w简写:它匹配任何所谓的“字词”,即A-Za-z0-9和{{1} (但它不包括任何类型的空格);然后你可以将所需的所有字符添加到字符类中。

如果“_”(下划线)在允许的字符列表中,您可以使用此正则表达式(允许空字符串):

_

或者,如果您只想验证非空字符串,可以使用此字符串(其中包含+符号而不是*,分别表示“匹配一个或多个字符”和“匹配零个或多个字符”) :

^[\w ()/:;,.-]*$

如果允许字符列表中的“_”(下划线),则必须明确使用间隔:

^[\w ()/:;,.-]+$

^[a-zA-Z\d ()/:;,.-]*$

答案 1 :(得分:2)

以下内容应该:

'^[a-zA-Z0-9\ /:;,\.\-\(\)]*$'

我不认为冒号,逗号或分号需要转义,但如果它给你带来麻烦,也可以在这些前面加一个反斜杠。其他一些逃脱可能是矫枉过正,但不应该伤害任何东西。

答案 2 :(得分:1)

您基本上可以将已批准的字符列表转换为如下字符类:

^[a-zA-Z0-9 /:;,.\-()]+$

只有当全文只包含允许列表中的字符时才应该匹配(更复杂的规则,例如末尾没有空格等,可能需要更正规的表达。

This site是对正则表达式非常有用的介绍。