斯威夫特,电话号码正则表达式



希望是一个简单的,

我需要限制为 8 个数字

,用户需要写 8 个数字不多不少。

现在这是我的代码:

telefonRegex = "^(?=.*[0-9])$"

但它不起作用,我刚刚听说过正则表达式仅供参考。

您当前的正则表达式永远不会匹配字符串,因为它需要在字符串的开头开始匹配 (^ ),然后进行前向检查以要求在除换行符 (.* ) 以外的任何 0+ 字符之后出现数字 ( [0-9] ),然后尝试匹配字符串的结尾紧接在开头之后 - tha 是, 它匹配空字符串,但也需要至少 1 位数字。

你可以只使用

let telefonRegex = "^[0-9]{8}$"

let telefonRegex = "\A[0-9]{8}\z"

匹配仅由 8 位数字组成的字符串。

  • ^ - 字符串的开头(可以在字符串文本中替换为\A
  • [0-9]{8} - 任何数字恰好出现 8
  • $ - 字符串的末尾(要确保字符串的末尾匹配,请在字符串文本中使用\z)。

最新更新