Swift中的正则表达式,用于验证持卡人姓名

时间:2018-04-24 01:23:30

标签: swift regex nsregularexpression

我正在寻找在 Swift 中使用的正则表达式来验证信用卡的持卡人姓名。我正在寻找一个regEx - - 最少2个,最多26个字符 - 仅接受短划线( - )和撇号('),不接受其他特殊字符 - 资本和小字母,没有数字。 - 不应该以空格开头。

我正在使用它 - "^[^-\\s][\\p{L}\\-'\\s]{2,26}$"但它只接受短划线( - )没有撇号(')

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

试试这个正则表达式

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

见这里

  

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

答案 1 :(得分:0)

根据您的描述猜测,这就是您要寻找的:

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

Demo

一些评论:

  • 你可能不希望允许所有可能的空白字符[\r\n\t\f\v ],只是空格。
  • 如果您添加第一个不包含空格和破折号的组(因为该组贡献了一个额外的角色),您必须调整第二个字符串的允许长度。
  • \p{L}你允许任何语言的任何形式的信件(这是好的);如果只想允许常规(ASCII)字母表,请使用[a-zA-z]

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