/***
* 身份證真實性驗證規則
*/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 身份證...