0

我希望验证一组电话号码,并允许在电话号码中添加 + 字符或 - 字符,但可选,电话号码总位数不需要设置为 10 位。在 CakePHP 中。我该怎么做?

有效输入示例:

0165561125

016 5542512

+016 5515241

+016-5512412

4

2 回答 2

0

您可以尝试以下正则表达式。

\+?\d{3}[- ]?\d{7}


\+?查找 a+并将其设为可选。
\d{3}寻找三位数字。
[- ]?寻找一个-或一个空格,又是可选的。注意比?使前面的字符可选。
\d{7}查找剩余的 7 位数字。



正如您所提到的,可以有任意数量的空格或 - 在您的电话号码中,您可以使用以下正则表达式:

\+?(\d+[ -]?)+
于 2013-03-25T07:00:43.760 回答
0

您可以尝试以下方法:

^\+?\d{3}[ -]?\d{7}$

这将匹配:

  • 一个可选+的开头
  • 紧跟三位数字
  • 后跟一个可选空格或-.
  • 紧接着是另外七个数字

但是,如果“电话号码总位数不需要设置为 10 位”意味着您不想限制位数(或确切指定多少位数),您可以将正则表达式更改为:

^\+?\d+[ -]?\d+$

这将匹配:

  • 一个可选+的开头
  • 后跟至少一位数字
  • 后跟一个可选空格或-.
  • 后跟至少一位数字

此外,如果您想在任何地方接受空格和连字符,我会这样做:

^(\+|\+ )?\d+([ -]?\d+)*$

这将匹配:

  • 一个可选+的开头(可选后跟一个空格)
  • 至少一位数
  • 零组或多组(空格或连字符,后跟至少一位数字)
于 2013-03-25T07:01:30.010 回答