我有两个正则表达式,一个用于验证手机号码,另一个用于家庭电话号码。
手机号码模式:
^((07|00447|\+447)\d{9}|(08|003538|\+3538)\d{8,9})$
家庭号码模式:
((0|0044|\+44)\d{10}|(08)\d{9}|(90)\d{6}|(92)\d{6}|(437)\d{5}|(28)\d{6}|(37)\d{6}|(66)\d{6}|(82)\d{6}|(777)\d{5}|(93)\d{6})$
有没有办法合并这两个表达式,以便我可以将它们应用到“联系号码”字段,如果输入匹配任一表达式,该字段有效?
答案 0 :(得分:10)
将两个正则表达式放入由交替运算符|
分隔的非捕获组中。
^(?:((07|00447|\+447)\d{9}|(08|003538|\+3538)\d{8,9})|((0|0044|\+44)\d{10}|(08)\d{9}|(90)\d{6}|(92)\d{6}|(437)\d{5}|(28)\d{6}|(37)\d{6}|(66)\d{6}|(82)\d{6}|(777)\d{5}|(93)\d{6}))$
答案 1 :(得分:2)
将它们与管道或运营商合并。
^((07|00447|\+447)\d{9}|(08|003538|\+3538)\d{8,9})|((0|0044|\+44)\d{10}|(08)\d{9}|(90)\d{6}|(92)\d{6}|(437)\d{5}|(28)\d{6}|(37)\d{6}|(66)\d{6}|(82)\d{6}|(777)\d{5}|(93)\d{6})$
答案 2 :(得分:1)
您必须拥有|
条件的非捕获组:
^(?:(07|00447|\+447)\d{9}|(08|003538|\+3538)\d{8,9})|(?:(0|0044|\+44)\d{10}|(08)\d{9}|(90)\d{6}|(92)\d{6}|(437)\d{5}|(28)\d{6}|(37)\d{6}|(66)\d{6}|(82)\d{6}|(777)\d{5}|(93)\d{6})$