tp5身份證號驗證

2021-09-07 18:35:33 字數 2944 閱讀 1088

/***

* 身份證真實性驗證規則

*/function

validation_filter_id_card

($id_card

)elseif((

strlen

($id_card)==

15))else

}// 計算身份證校驗碼,根據國家標準gb 11643-1999

function

idcard_verify_number

($idcard_base

)//加權因子

$factor

=array(7

,9,10

,5,8

,4,2

,1,6

,3,7

,9,10

,5,8

,4,2

);//校驗碼對應值

$verify_number_list

=array

('1'

,'0'

,'x'

,'9'

,'8'

,'7'

,'6'

,'5'

,'4'

,'3'

,'2');

$checksum=0

;for($i

=0;$i

<

strlen

($idcard_base);

$i++

)$mod

=$checksum%11

;$verify_number

=$verify_number_list

[$mod];

return

$verify_number;}

// 將15位身份證公升級到18位

function

idcard_15to18

($idcard

)else

else

}$idcard

=$idcard

.idcard_verify_number

($idcard);

return

$idcard;}

// 18位身份證校驗碼有效性檢查

function

idcard_checksum18

($idcard

)$idcard_base

=substr

($idcard,0

,17);

if(idcard_verify_number

($idcard_base)!=

strtoupper

(substr

($idcard,17

,1))

)else

}

2…控制器才可以正常呼叫驗證方法了。

protected

$msg=[

'idnumber'

=>

'身份證格式錯誤',]

;protected

$validate=[

'idnumber'

=>

['/(^\d(15)$)|((^\d$))|(^\d(\d|x|x)$)/'

,'require'],

];public

function

add(request $request

)//驗證身份證真實性if(

!validation_filter_id_card

($data

['idnumber'])

)}

原生php驗證也可以用下面這個函式:

/**

* 身份證校驗

* @param unknown $id

* @return boolean

*/function

isidcard

($id

)$)|(^\d([0-9]|x)$)/"

;$arr_split=[

];if(

!preg_match

($regx

,$id))

if(15==

strlen

($id))

)+(\d)+(\d)+(\d)+(\d)$/"

; @preg_match

($regx

,$id

,$arr_split);

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

$dtm_birth

="19"

.$arr_split[2

].'/'.

$arr_split[3

].'/'.

$arr_split[4

];if(

!strtotime

($dtm_birth))

else

}else

)+(\d)+(\d)+(\d)+(\d)([0-9]|x)$/"

; @preg_match

($regx

,$id

,$arr_split);

$dtm_birth

=$arr_split[2

].'/'.

$arr_split[3

].'/'.

$arr_split[4

];//檢查生日日期是否正確if(

!strtotime

($dtm_birth))

else;$w

=$arr_int[$i

];$sign+=

$b*$w;

}$n=$sign%11

;$val_num

=$arr_ch[$n

];if(

$val_num

!=substr

($id,17

,1))

else}}

}

身份證號驗證

原文 身份證號驗證 public static boolean isidnumber string idnumber 定義判別使用者身份證號的正規表示式 15位或者18位,最後一位可以為字母 string regularexpression 1 9 d 18 19 20 d 0 1 9 10 11 ...

身份證號驗證

身份證號組成 17位數字 1位校驗碼 位址碼 前六位 出生日期碼 第七位至第十位 順序碼 第十五位至十七位 對同年同月同日生的人便定的順序號,順序號奇數為男生,偶數為女生 檢驗碼 第十八位 0 9 x var acity function iscarid sid d x i.test sid ret...

js 身份證號驗證

function iscardid sid var isum 0 var info if d d x i.test sid return 身份證長度或格式錯誤 sid sid.replace x i,a if acity parseint sid.substr 0,2 null return 身份證...