2015-02-06 123 views
-3

我使用表单验证器来验证注册表单上的一些字段。其中之一就是我为此准备的两个正则表达式提供验证的电话域。两个正则表达式的组合

regexp: { 
regexp: 
>/(^01|^02|^071|^073|^074|^075|^076|^077|^078|^079)/, 
     /^((?!(|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' 
        } 

我的问题是,只有其中一个会工作,而不是两个。任何想法如何我可以修改这个,使他们都工作?

+1

“这两个中只有一个会工作,而不是两个” - 你的意思是你只能使用一个正则表达式,或者其中一个没有做你想做的事(哪个?为什么?)? – user52889 2015-02-06 20:56:54

+3

圣地狱,这是复杂的...也许简化它会让你的问题消失 – 2015-02-06 20:57:59

+0

是的,只有一个将工作里面的验证@ user5288 – user2713650 2015-02-06 21:18:05

回答

1

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

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

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

+0

非常感谢。哈哈我特别被告知它必须是这种方式不幸的 - 它不会让我投票,但非常感谢! – user2713650 2015-02-06 23:07:08

0

你可以将二者结合起来是这样的:

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

是否看起来像是一种模糊处理的方式来执行一些相当简单的检查我,但每一个自己。

+0

感谢您的解决方案 – user2713650 2015-02-06 23:18:26