正则表达式 - 至少一个字母数字字符并允许空格

时间:2014-06-21 23:56:19

标签: c# regex

我想确保名字字段至少包含一个字母数字字符,并且还允许使用空格和短划线。

**VALID**

David
Billie Joe
Han-So

**INVALID**
-

Empty is also invalid

2 个答案:

答案 0 :(得分:1)

使用此模式

^(?=.*[a-zA-Z])[a-zA-Z -]+$  

Demo

哦,用于字母数字用途

^(?=.*[a-zA-Z0-9])[a-zA-Z 0-9-]+$ 

答案 1 :(得分:1)

要确保在合法位置发生破折号和空格,请使用:

(?i)^[a-z]+(?:[ -]?[a-z]+)*$

请参阅demo

  • (?i)让我们处于不区分大小写的模式
  • ^确保我们位于字符串的开头
  • [a-z]+匹配一个或多个字母
  • [ -]?[a-z]+匹配可选的单个空格或短划线,后跟字母...
  • (?:[ -]?[a-z]+)*,允许零次或多次
  • $断言我们已到达字符串
  • 的末尾

您提到alphanumeric,以防万一您也想要允许数字:

(?i)^[a-z0-9]+(?:[ -]?[a-z0-9]+)*$