2013-12-19 119 views
0

试图让这个正则表达式的工作:验证的正则表达式与字母数字和特殊字符

^([a-zA-Z]+)([a-zA-Z0-9\.\(\)]*){1,10}$ 


([a-zA-Z]+)
起始字符必须为a-zA-Z,然后另外字符在同一范围内,这是工作。

([a-zA-Z0-9\.\(\)]*)
任意数量的额外字符可以是a-zA-Z,或者.(),而这工作。

其中{1,10}限制长度不超过10个字符,最小值为1个字符;该部分不起作用。我尝试了使用不同的圆括号组合,但无法获得验证的长度。

回答

1

使用此:

^[A-Za-z][a-zA-Z0-9.()\s-]{0,9}$ 

更新以包括空格和支持-

您不能使用多个捕获组{x,x}范围类;它仅适用于单个字符或字符类。

既然你知道你想要它至少有1个字符,[A-Za-z](在^行的开头)已经要求;其余的,你现在可以允许0或9次与{0,9},完成声明与结束线$

请参阅Live demo

+0

我以为'''必须逃脱? +1在regex101! – raffian

+1

@raffian常见的误解;)'.'不需要在字符类中转义,只要不用于定义字符范围,''也不需要转义。 – brandonscript

+0

Aaaand正如我们发现的那样,'()'大声笑。 – brandonscript

相关问题