我有两个正则表达式。一个验证英国号码(来自我之前的问题),另一个验证美国号码:
-
^'(?(?:(?:0(?:0|11)')?['s-]?'(?|'+)44')?['s-]?'(?(?:0')?['s-]?'(?)?|0)(?:'d{2}')?['s-]?'d{4}['s-]?'d{4}|'d{3}')?['s-]?'d{3}['s-]?'d{3,4}|'d{4}')?['s-]?(?:'d{5}|'d{3}['s-]?'d{3})|'d{5}')?['s-]?'d{4,5}|8(?:00['s-]?11['s-]?11|45['s-]?46['s-]?4'd))(?:(?:['s-]?(?:x|ext'.?'s?|'#)'d+)?)$^
-
/'(?[2-9][0-8][0-9]')?[-. ]?[0-9]{3}[-. ]?[0-9]{4}/
我想把这两者结合起来,这样我就可以验证任何美国或英国的号码。
或|
操作是否足够?
在这里,我使用|将两者组合在一起,但它不能验证数字:
http://regex101.com/r/wD4dI9
是的,您的|
运算符应该对此很好。它看起来是这样的:
/((^'(?(?:(?:0(?:0|11)')?['s-]?'(?|'+)44')?['s-]?'(?(?:0')?['s-]?'(?)?|0)(?:'d{2}')?['s-]?'d{4}['s-]?'d{4}|'d{3}')?['s-]?'d{3}['s-]?'d{3,4}|'d{4}')?['s-]?(?:'d{5}|'d{3}['s-]?'d{3})|'d{5}')?['s-]?'d{4,5}|8(?:00['s-]?11['s-]?11|45['s-]?46['s-]?4'd))(?:(?:['s-]?(?:x|ext'.?'s?|'#)'d+)?)$)|('(?[2-9][0-8][0-9]')?[-. ]?[0-9]{3}[-. ]?[0-9]{4}))/
它适用于您问题中的regex演示:http://regex101.com/r/zX2cE5