Swift 中的正则表达式以验证持卡人姓名
Regular expression in Swift to validate Cardholder name
我正在寻找在 Swift 中使用的正则表达式来验证信用卡的持卡人姓名。我正在寻找一个正则表达式:
- 最少 2 个,最多 26 个字符
- 仅接受破折号 (
-
) 和撇号 ('
),不接受其他特殊字符
- 大写字母和小写字母,没有数字。
- 不应以空格开头 space。
我正在使用这个
"^[^-\s][\p{L}\-'\s]{2,26}$"
但它只接受破折号 (-
) 不接受撇号 ('
)
试试这个正则表达式
(?<! )[-a-zA-Z' ]{2,26}
看这里
根据你的描述猜测,这就是你要找的东西:
^[\p{L}'-][\p{L}' -]{1,25}$
几点说明:
- 您可能不想允许所有可能的白色-space 字符
[\r\n\t\f\v ]
而只是 spaces.
- 如果添加不包含 space 和破折号的第一个组(因为该组贡献了一个额外的字符),则必须调整第二个字符串的允许长度。
- with
\p{L}
你允许来自任何语言的任何类型的字母(这很好);否则,如果只想允许常规 (ASCII) 字母表,请使用 [a-zA-z]
。
PS:不要忘记正确转义模式:"^[\p{L}'][\p{L}' -]{1,25}$"
我正在寻找在 Swift 中使用的正则表达式来验证信用卡的持卡人姓名。我正在寻找一个正则表达式:
- 最少 2 个,最多 26 个字符
- 仅接受破折号 (
-
) 和撇号 ('
),不接受其他特殊字符 - 大写字母和小写字母,没有数字。
- 不应以空格开头 space。
我正在使用这个
"^[^-\s][\p{L}\-'\s]{2,26}$"
但它只接受破折号 (-
) 不接受撇号 ('
)
试试这个正则表达式
(?<! )[-a-zA-Z' ]{2,26}
看这里
根据你的描述猜测,这就是你要找的东西:
^[\p{L}'-][\p{L}' -]{1,25}$
几点说明:
- 您可能不想允许所有可能的白色-space 字符
[\r\n\t\f\v ]
而只是 spaces. - 如果添加不包含 space 和破折号的第一个组(因为该组贡献了一个额外的字符),则必须调整第二个字符串的允许长度。
- with
\p{L}
你允许来自任何语言的任何类型的字母(这很好);否则,如果只想允许常规 (ASCII) 字母表,请使用[a-zA-z]
。
PS:不要忘记正确转义模式:"^[\p{L}'][\p{L}' -]{1,25}$"