两个正则表达式的组合

Combination of two regex

本文关键字:正则表达式 组合 两个      更新时间:2023-09-26

我使用表单验证器来验证注册表单上的一些字段。其中一个是电话字段,我为其准备了两个正则表达式,用于提供验证。

regexp: {
regexp: 
>/(^01|^02|^071|^073|^074|^075|^076|^077|^078|^079)/, 
         /^((?!(012345|123456|234567|345678|456789|0{6,}|1{6,}|2{6,}|3{6,}|4{6,}|5{6,}|6{6,}|7{6,}|8{6,}|9{6,})).)*$/
message: 'The phone number is not valid'
                    }

我的问题是,这两者中只有一个会起作用,而不是两者都起作用。你知道我该如何修改它,使它们都能工作吗?

这个正则表达式会起作用,但我仍然建议可能找到一种不同的方法或一组标准来验证。不过这取决于你。

/^(0(?:[12]|7[145789]))(?!012345|123456|234567|345678|456789|0{6,}|1{6,}|2{6,}|3{6,}|4{6,}5{6,}|6{6,}|7{6,}|8{6,}|9{6,})/

这将确保数字以正确的前缀开头,并且不包含您指示的序列。

您可以像这样将两者结合起来:

/^(?=(01|02|071|073|074|075|076|077|078|079))((?!(012345|123456|234567|345678|456789|0{6,}|1{6,}|2{6,}|3{6,}|4{6,}|5{6,}|6{6,}|7{6,}|8{6,}|9{6,})).)*$/

对我来说,这似乎是一种模糊的方式来执行一些相当简单的检查,但对每个人来说都是如此。