ppypp伦理天堂,91手机在线视频,免费在线观看黄色毛片,夜夜穞天天穞狠狠穞AV美女按摩

聯系官方銷售客服

1835022288

028-61286886

投訴 已解決 電話號碼驗證函數 13 0
迅睿CMS版本:4.3.7 懸賞:10元 #函數
// 電話號碼驗證函數
function dr_shouji_xiaoyan($value, $data = [], $old = []) {

    if (!$value) {
        return dr_return_data(0, '請填寫電話');
    } elseif (strlen($value) < 11) {
        return dr_return_data(0, '請輸入正確的11位手機號碼');
    } elseif (!is_numeric($value)) {
        return dr_return_data(0, '只能輸入數字');
    }

    return dr_return_data(1, 'ok');

}

怎么樣類似這樣寫一個身份證號位數效驗,身份證號一般是18位,然后最后一位數可能是X。怎么這樣效驗啊。

還有就是怎么在寫一個,郵箱的效驗。就是需要在填寫郵箱的地方判斷格式。

求大神幫我寫一個

解決方案
  • /**
         * 身份證號驗證
         * @param $id
         * @return bool
         */
        public static function is_idcard( $id )
        {
            $id = strtoupper($id);
            $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";
            $arr_split = array();
            if(!preg_match($regx, $id))
            {
                return FALSE;
            }
            if(15==strlen($id)) //檢查15位
            {
                $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";
     
                @preg_match($regx, $id, $arr_split);
                //檢查生日日期是否正確
                $dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
                if(!strtotime($dtm_birth))
                {
                    return FALSE;
                } else {
                    return TRUE;
                }
            }
            else      //檢查18位
            {
                $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";
                @preg_match($regx, $id, $arr_split);
                $dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
                if(!strtotime($dtm_birth)) //檢查生日日期是否正確
                {
                    return FALSE;
                }
                else
                {
                    //檢驗18位身份證的校驗碼是否正確。
                    //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
                    $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
                    $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
                    $sign = 0;
                    for ( $i = 0; $i < 17; $i++ )
                    {
                        $b = (int) $id{$i};
                        $w = $arr_int[$i];
                        $sign += $b * $w;
                    }
                    $n = $sign % 11;
                    $val_num = $arr_ch[$n];
                    if ($val_num != substr($id,17, 1))
                    {
                        return FALSE;
                    } //phpfensi.com
                    else
                    {
                        return TRUE;
                    }
                }
            }
     
        }
    ————————————————
    • 2020-06-10 10:26:11
      Chrome 0

      你這個我怎么用呢,前面電話我是這樣用的。然后把代碼放到一個文件里面 這里調用用的,你這個我應該怎么樣用


      image

      回復@SMALL

  • // 身份證驗證
    function dr_sfz_xiaoyan($value, $data = [], $old = []) {
    
        if (!$value) {
            return dr_return_data(0, '請填寫身份證');
        } elseif (strlen($value) < 11) {
            return dr_return_data(0, '請輸入正確的18位身份證');
        } elseif (!is_numeric(substr($value, 0, 17))) {
            return dr_return_data(0, '只能輸入數字');
        } elseif (!is_numeric(substr($value, 0, -1)) && strtolower(substr($value, 0, -1)) != 'x') {
            return dr_return_data(0, '身份證最后一位只能是x字母');
        }
    
        return dr_return_data(1, 'ok');
    
    }
    QQ3235865788-
    • 2020-06-10 10:26:46
      Chrome 0

      不是,身份證最后一位有可能是數字,有可能是X,不是只能是X啊

      回復@如來

    • 身份證最后一位有可能是數字,有可能是X,不是只能是X,就是這么寫的啊

      回復@五金沖壓件

      QQ3235865788-
    • 2020-06-10 10:27:49
      Chrome 0

      哦,我試試

      回復@如來

    • 2020-06-10 10:29:05
      Chrome 0
      // 身份證驗證
      function dr_sfz_xiaoyan($value, $data = [], $old = []) {
      
          if (!$value) {
              return dr_return_data(0, '請填寫身份證');
          } elseif (strlen($value) < 11) {
              return dr_return_data(0, '請輸入正確的18位身份證');
          } elseif (!is_numeric(substr($value, 0, 17))) {
              return dr_return_data(0, '只能輸入數字');
          } elseif (!is_numeric(substr($value, 0, -1)) && strtolower(substr($value, 0, -1)) != 'x') {
              return dr_return_data(0, '身份證最后一位只能是x字母');
          }
      
          return dr_return_data(1, 'ok');
      
      }

      回復@如來

          } elseif (strlen($value) < 11) {
              return dr_return_data(0, '請輸入正確的18位身份證');

      這里的11 要修改成18嗎

  • // 身份證驗證
    function dr_sfz_xiaoyan($value, $data = [], $old = []) {
    
        if (!$value) {
            return dr_return_data(0, '請填寫身份證');
        } elseif (strlen($value) < 18) {
            return dr_return_data(0, '請輸入正確的18位身份證');
        } elseif (!is_numeric(substr($value, 0, 17))) {
            return dr_return_data(0, '只能輸入數字');
        } elseif (!is_numeric(substr($value, 0, -1)) && strtolower(substr($value, 0, -1)) != 'x') {
            return dr_return_data(0, '身份證最后一位只能是x字母');
        }
    
        return dr_return_data(1, 'ok');
    
    }

    完美答案,請給分

  • // 郵箱驗證
    function dr_email_xiaoyan($value, $data = [], $old = []) {
    
        if (!$value) {
            return dr_return_data(0, '請填寫email');
        } elseif (!preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', $value)) {
            return dr_return_data(0, 'email格式不對');
        } elseif (strpos($value, '"') !== false || strpos($value, '\'') !== false) {
            return dr_return_data(0, 'email格式不對');
        } 
        return dr_return_data(1, 'ok');
    
    }
  • 有點難搞,一人回復一個,我這懸賞(設置懸賞)應該怎么采納呢

  • 234樓都可行,兩個問題就發兩個帖子唄

  • /**

    * 身份證號驗證

    * @param $value

    * @return bool

    */

    function dr_is_idcard( $value, $data = [], $old = [] )

    {

    $value = strtoupper($value);

    $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";

    $arr_split = array();

    if(!preg_match($regx, $value))

    {

    return dr_return_data(0, '請填寫身份證');

    }

    if(15==strlen($value)) //檢查15位

    {

    $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";

    @preg_match($regx, $value, $arr_split);

    //檢查生日日期是否正確

    $dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];

    if(!strtotime($dtm_birth))

    {

    return dr_return_data(0, '請填寫正確的身份證');

    } else {

    return dr_return_data(1, 'ok');

    }

    }

    else //檢查18位

    {

    $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";

    @preg_match($regx, $value, $arr_split);

    $dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];

    if(!strtotime($dtm_birth)) //檢查生日日期是否正確

    {

    return dr_return_data(0, '請填寫正確的身份證');

    }

    else

    {

    //檢驗18位身份證的校驗碼是否正確。

    //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。

    $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);

    $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');

    $sign = 0;

    for ( $i = 0; $i < 17; $i++ )

    {

    $b = (int) $value{$i};

    $w = $arr_int[$i];

    $sign += $b * $w;

    }

    $n = $sign % 11;

    $val_num = $arr_ch[$n];

    if ($val_num != substr($value,17, 1))

    {

    return dr_return_data(0, '請填寫正確的身份證');

    } //phpfensi.com

    else

    {

    return dr_return_data(1, 'ok');

    }

    }

    }

    }

    滿意答案
    短信幣+1
    +10元
  • @SMALL:其實樓上的都能用,但是這個懸賞(設置懸賞),沒辦法分開發放獎金,這個比較核驗的比較嚴謹,選這個吧,同時感謝其他大佬的幫助和指導!