我试图获得一个12位数字的电话号码的正则表达式:+ ############。
我尝试使用的代码是([+]?)\d{12}(\d{2})?$
,但没有运气。
请帮忙
答案 0 :(得分:1)
此模式将在加号后正好匹配12位数字:
/^\+\d{12}$/
您的模式中的尾随可选(/d{2})?
组件是什么?
这是没有正则表达式的相同功能:
$phone='+012345678912';
if($phone[0]=='+' && strlen($phone)==13 && is_numeric(substr($phone,1))){
echo 'valid';
}else{
echo 'invalid';
}
// displays: valid
答案 1 :(得分:0)
答案 2 :(得分:-1)
我们是否需要捕获某些数字/序列,或者您只是使用该格式验证其数字?
每当我不确定正则表达式时,我都会使用此在线工具regex101。它在右侧准确显示您正在捕获/检查哪些非常有用。根据您的使用情况,我不知道这个正则表达式是如何工作的,请提供一个示例。否则:
您只是在最初的12后捕获+号和2位数。
我建议您使用\+(\d{12})
并避免使用不需要的锚点和捕获组。
答案 3 :(得分:-1)
^(\+)(\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)