繁体   English   中英

电话号码的12位正则表达式

[英]12 digit Regex for Phone number

我试图获取一个正则表达式,用于正好为12位数字的电话号码,格式为:+ ############。

我尝试使用的代码是([+]?)\\d{12}(\\d{2})?$但是没有运气。

请帮忙

此模式将与加号后的12位数字完全匹配:

/^\+\d{12}$/

您尾随的可选内容(/d{2})? 组件在您的模式中做什么?


这是没有regex的相同功能:

$phone='+012345678912';
if($phone[0]=='+' && strlen($phone)==13 && is_numeric(substr($phone,1))){
    echo 'valid';
}else{
    echo 'invalid';
}
// displays: valid

尝试这个:

^\+\d{12}(\d{2})?$

您需要转义加号

Regex101演示

我们是否需要捕获某些数字/序列,或者您只是使用该格式验证其数字?

每当我不确定regex时,都会使用此在线工具regex101 它会在右侧准确显示您正在捕获/检查的内容,这非常有用。 根据您的用例,我看不到此正则表达式如何工作,请提供示例。 除此以外:

  1. 您只捕获了前12个字母后的+号和2位数字。

  2. 您锚定到字符串的末尾而不是开头
  3. +和2个额外的数字都是可选的,但您想精确地获得+ ############?

建议您使用\\+(\\d{12})并避免使用不需要的锚点和捕获组。

如果要支持三个数字之间的可选空格,请改用此正则表达式

^(\+)(\d{3}\s?){4}(\d{2})?$

\\s空格字符,而? 表示可选

https://regex101.com/r/nX5XnH/3 (演示)

+012 345 678 912 (ok)
+012345 678 912 (ok)
+012 345678912 (ok)
+01234567891244 (ok)
012345678913 (no mach - missing plus sign)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM