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

时间:2017-10-23 22:41:02

标签: ios regex swift

希望是一个简单的,

我需要限制8个数字,用户需要写入8个数字不多或少。

现在这是我的代码:

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

但它不起作用,我刚刚听说正则表达式。

1 个答案:

答案 0 :(得分:7)

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

您可以使用

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

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

匹配仅包含8位数的字符串。

<强>详情

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