-1
A
回答
0
你的正则表达式的一个问题是,它迫使用户把-
。您可以使用?
,使之选:
^[a-z A-Z]*\-?[a-zA-Z]*$
0
如果匹配.*-.*-
,那么你有一个以上的连字符和这样的字符串不应当被接受
1
可以使用负前瞻拒绝具有超过串一个连字符:
^(?![^-]+-[^-]+-)[a-zA-Z- ]+$
Matched上debuggex演示。
Another Matched demoge on debuggex。
Not Matched Demo demoge on debuggex。
3
您的正则表达式只允许有一个-
。但我认为你要马赫“史密斯”,“史密斯 - 肯尼迪”,而不是“Smith-”,要做到这一点,你必须只连字符移到第二组:
^[a-z A-Z]+(-[a-z A-Z]+)?$
BTW,几乎当使用*
时,所有情况下+
是更好的解决方案。
0
相关问题
- 1. 正则表达式只允许字符
- 2. 只允许一个字母字符 - 正则表达式
- 3. 正则表达式允许数字和中间只有一个连字符
- 4. 在java中只允许两个或更多连字符的正则表达式?
- 5. 扩展正则表达式以允许使用连字符
- 6. 只允许某些非字母字符在正则表达式
- 7. 正则表达式只允许在
- 8. 只允许一组字符的正则表达式
- 9. 正则表达式只允许一组特定的字符(Javascript)?
- 10. PHP的正则表达式只允许两个字符
- 11. 正则表达式属性,只允许字母数字字符
- 12. Java-我如何只允许不使用正则表达式的字母字符
- 13. 正则表达式允许在Java中使用空格字符
- 14. 正则表达式只允许一个字后跟网址
- 15. Java正则表达式 - 只允许某些字符和数字
- 16. 只允许首字母大写字符串(正则表达式)
- 17. 正则表达式允许一个特殊字符(:)和数字和字母只
- 18. 正则表达式只允许负数
- 19. 只允许在正则表达式中使用特定的转义字符
- 20. 只允许在文本框中使用英文字符的正则表达式
- 21. Python:允许重复正则表达式,只允许在逗号之间使用1连字符
- 22. 我使用的正则表达式不允许使用符号
- 23. 只允许字符或空格的正则表达式
- 24. jQuery正则表达式只允许货币符号和数字
- 25. PHP - 正则表达式只允许数字和符号
- 26. 正则表达式限制特殊字符,只允许DOT和&
- 27. 正则表达式:用连字符替换空格,只允许a-z
- 28. 如何只允许一个/在正则表达式
- 29. 如何允许正则表达式与一个字符匹配
- 30. JS正则表达式只允许数字,分号和连字符
你的正则表达式只允许使用一个连字符,那么你的问题是什么? – stema 2013-04-05 07:20:13