Regex -至少一个字母数字字符,允许空格

本文关键字:空格 数字字符 许空格 一个 Regex | 更新日期: 2023-09-27 18:09:36

我想确保一个名字字段至少有一个字母数字字符,也允许空格和破折号

**VALID**
David
Billie Joe
Han-So
**INVALID**
-
Empty is also invalid

Regex -至少一个字母数字字符,允许空格

要确保破折号和空格出现在合法的位置,请使用:

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

看演示。

  • (?i)使我们进入不区分大小写模式
  • ^确保我们位于字符串
  • 的开头
  • [a-z]+匹配一个或多个字母
  • [ -]?[a-z]+匹配可选的单空格或后面跟着字母的破折号…
  • (?:[ -]?[a-z]+)*,允许0次或多次
  • $断言我们已经到达字符串
  • 的末尾

你提到了alphanumeric,所以如果你还想允许数字:

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

使用此模式

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

演示

哦,对于字母数字使用

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