我有两个正则表达式,一个用于验证手机号码,另一个用于房屋电话号码。
手机号码模式:
^((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})$有没有办法将这两个表达式组合在一起,这样我就可以将它们应用于'Contact Number‘字段,如果输入匹配其中任何一个表达式,该字段将是有效的?
发布于 2014-12-22 23:55:03
将两个正则表达式放入由交替操作符|分隔的非捕获组中。
^(?:((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}))$发布于 2014-12-22 23:55:42
将它们与管道相结合,这就是or运算符。
^((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})$发布于 2014-12-22 23:55:18
您可能必须在|条件下不捕获组:
^(?:(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})$https://stackoverflow.com/questions/27605991
复制相似问题