正则表达式,以避免相等和序列数字

时间:2017-06-12 05:39:24

标签: php regex

我正在寻找符合我要求的正则表达式。但我无法找到一个确切的。

我的要求是

添加验证检查以避免电话号码:

  

1)6位数相等(例如000000; 111111)
   2)序列号(7位)(例如   1234567; 7654321)

我尝试了最后得到这段代码

if (preg_match('/(\d)\1{5}/', $phone)) {    
     echo "Invalid Phone number";
}

但它只匹配第一种情况。希望有人会帮助我。提前谢谢!

1 个答案:

答案 0 :(得分:1)

这是我脱离正则表达式的那一次。

这将执行您的预期验证(并包括"全天候"数字序列)。

PHP Demo

$phone='000000';
$len=strlen($phone);
$rnd_the_clk='0123456789012345';
if(($len==6 && $phone==str_repeat($phone[0],6))  // length is 6, check only one integer used
    ||
   ($len==7 && (strpos($rnd_the_clk,$phone)!==false || strpos($rnd_the_clk,strrev($phone))!==false))){ // length is 7, check sequential
    echo "invalid";   
}else{
    echo "valid";
}