2013-04-05 22 views

回答

0

你的正则表达式的一个问题是,它迫使用户把-。您可以使用?,使之选:

^[a-z A-Z]*\-?[a-zA-Z]*$ 
0

如果匹配.*-.*-,那么你有一个以上的连字符和这样的字符串不应当被接受

3

您的正则表达式只允许有一个-。但我认为你要马赫“史密斯”,“史密斯 - 肯尼迪”,而不是“Smith-”,要做到这一点,你必须只连字符移到第二组:

^[a-z A-Z]+(-[a-z A-Z]+)?$ 

BTW,几乎当使用*时,所有情况下+是更好的解决方案。

0

我假设你想要最多1个连字符。如果是这样,你想要的正则表达式是

^[a-z A-Z]*-?[a-z A-Z]*$ 

你可以想像它www.debuggex.com

相关问题