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})?$/