Swift 中的正则表达式以验证持卡人姓名

Regular expression in Swift to validate Cardholder name

我正在寻找在 Swift 中使用的正则表达式来验证信用卡的持卡人姓名。我正在寻找一个正则表达式:

我正在使用这个

"^[^-\s][\p{L}\-'\s]{2,26}$"

但它只接受破折号 (-) 不接受撇号 (')

试试这个正则表达式

(?<! )[-a-zA-Z' ]{2,26}

看这里

https://regex101.com/r/0UVvR1/1

根据你的描述猜测,这就是你要找的东西:

^[\p{L}'-][\p{L}' -]{1,25}$

Demo

几点说明:

  • 您可能不想允许所有可能的白色-space 字符 [\r\n\t\f\v ] 而只是 spaces.
  • 如果添加不包含 space 和破折号的第一个组(因为该组贡献了一个额外的字符),则必须调整第二个字符串的允许长度。
  • with \p{L} 你允许来自任何语言的任何类型的字母(这很好);否则,如果只想允许常规 (ASCII) 字母表,请使用 [a-zA-z]

PS:不要忘记正确转义模式:"^[\p{L}'][\p{L}' -]{1,25}$"