2013-04-05 20 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

相關問題