我希望验证一组电话号码,并允许在电话号码中添加 + 字符或 - 字符,但可选,电话号码总位数不需要设置为 10 位。在 CakePHP 中。我该怎么做?
有效输入示例:
0165561125
016 5542512
+016 5515241
+016-5512412
您可以尝试以下正则表达式。
\+?\d{3}[- ]?\d{7}
\+?
查找 a+
并将其设为可选。
\d{3}
寻找三位数字。
[- ]?
寻找一个-
或一个空格,又是可选的。注意比?使前面的字符可选。
\d{7}
查找剩余的 7 位数字。
正如您所提到的,可以有任意数量的空格或 - 在您的电话号码中,您可以使用以下正则表达式:
\+?(\d+[ -]?)+
您可以尝试以下方法:
^\+?\d{3}[ -]?\d{7}$
这将匹配:
+
的开头-
.但是,如果“电话号码总位数不需要设置为 10 位”意味着您不想限制位数(或确切指定多少位数),您可以将正则表达式更改为:
^\+?\d+[ -]?\d+$
这将匹配:
+
的开头-
.此外,如果您想在任何地方接受空格和连字符,我会这样做:
^(\+|\+ )?\d+([ -]?\d+)*$
这将匹配:
+
的开头(可选后跟一个空格)