PHPは携帯番号により事業者を判断する(詳細は付属コード)

2222 ワード

理屈は簡単だが、携帯番号のルールを知って正則的に判断すればいい.
移動:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
連通:130、131、132、152、155、156、185、186
電気通信:133、153、180、189、(1349衛通)
HTMLページ




       


  


  //        

  /*
     :134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
     :130、131、132、152、155、156、185、186
     :133、153、180、189、(1349  )
   */
  var phone = '';
  function mobile_check(phone){
    if(phone.length !== 11){
      alert('           ');
      return false;
    }
    $.ajax({
      url:"__CONTROLLER__/phone_check",
      async:false,
      dataType:'json',
      type:'post',
      data:{phone:phone},
      success:function(msg){
        alert(msg);
      }
    });
  }

コントロール制御コード

/*
  *@param string $phone        
  *@return 0    ,1     2     3  
  */
  public function phone_check(){
    if(IS_POST){
      $phone = I('phone');
      $isChinaMobile = "/^134[0-8]\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|18[2-478])\d{8}$/"; //        
      $isChinaUnion = "/^(?:13[0-2]|145|15[56]|176|18[56])\d{8}$/"; //           
      $isChinaTelcom = "/^(?:133|153|177|173|18[019])\d{8}$/"; //1349            ,     
      // $isOtherTelphone = "/^170([059])\\d{7}$/";//     
      if(preg_match($isChinaMobile, $phone)){
        $this->ajaxReturn('    '); //0
      }else if(preg_match($isChinaUnion, $phone)){
        $this->ajaxReturn('    '); //1
      }else if(preg_match($isChinaTelcom, $phone)){
        $this->ajaxReturn('    '); //2
      }else{
        $this->ajaxReturn('  ');   //3
      }
    }

    $this->display();
  }

以上がすべての実装コードですので、必要な方は参考にしてください