2015-02-06 111 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