Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 电话号码的简单修复正则表达式验证_Php_Regex - Fatal编程技术网

Php 电话号码的简单修复正则表达式验证

Php 电话号码的简单修复正则表达式验证,php,regex,Php,Regex,到目前为止,我在表格中已将此项用于验证电话号码: /^\s*\+?\s*([0-9]+\s*)+\s*(\(\+?[0-9]+\s*)+)?\s*[0-9-\s]*[0-9]\s*$/ 它适用于这样的数字:+021(+12)113-2145,但我需要在它的末尾添加一个扩展名:+021(+12)113-2145 x 123,那么我如何添加字符x,然后添加数字呢 此外,x和数字之间的空格也应该是可选的,就像上面我的代码一样 有什么想法吗?谢谢 试试看: /^\s*\+?\s*([0-9]+\s*)+

到目前为止,我在表格中已将此项用于验证电话号码:

/^\s*\+?\s*([0-9]+\s*)+\s*(\(\+?[0-9]+\s*)+)?\s*[0-9-\s]*[0-9]\s*$/

它适用于这样的数字:
+021(+12)113-2145
,但我需要在它的末尾添加一个扩展名:
+021(+12)113-2145 x 123
,那么我如何添加字符
x
,然后添加数字呢

此外,
x
和数字之间的空格也应该是可选的,就像上面我的代码一样

有什么想法吗?谢谢

试试看:

/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*(x\s*[0-9]+)?$/;
增加:(x\s*[0-9]+)?; 编辑:


首先,您可以用较短的
\d
替换
[0-9]
的所有实例。(对于十进制数字)

然后,将其添加到原始正则表达式:

(x\s*[\d]{3})?
是的

/^\s*\+?\s*([\d]+\s*)+\s*(\((\+?[\d]+\s*)+\))?\s*[\d-\s]*[\d]\s*(x\s*[\d]{3})?$/
编辑:将扩展设置为可选


编辑2:使用了
\d
而不是
[0-9]

看起来您对正则表达式的理解相当好。你为什么不把
x
和分机号添加到你的正则表达式中呢?我尝试了很多方法,但都不管用,所以我可能遗漏了什么:)需要一些帮助。谢谢是的,这是一个可选内容,您需要在正则表达式中为扩展设置反向引用吗?也不起作用:(格式应该是
+021(+12)113-2145 x 123
+021(+12)113-2145 x123
+021(+12)113-2145x 123
+021(+12)113-2145x123
。谢谢!
/^\s*\+?\s*([\d]+\s*)+\s*(\((\+?[\d]+\s*)+\))?\s*[\d-\s]*[\d]\s*(x\s*[\d]{3})?$/