我想确保名字字段至少包含一个字母数字字符,并且还允许使用空格和短划线。
**VALID**
David
Billie Joe
Han-So
**INVALID**
-
Empty is also invalid
答案 0 :(得分:1)
答案 1 :(得分:1)
要确保在合法位置发生破折号和空格,请使用:
(?i)^[a-z]+(?:[ -]?[a-z]+)*$
请参阅demo。
(?i)
让我们处于不区分大小写的模式^
确保我们位于字符串的开头[a-z]+
匹配一个或多个字母[ -]?[a-z]+
匹配可选的单个空格或短划线,后跟字母... (?:[ -]?[a-z]+)*
,允许零次或多次$
断言我们已到达字符串您提到alphanumeric
,以防万一您也想要允许数字:
(?i)^[a-z0-9]+(?:[ -]?[a-z0-9]+)*$