- php教程首页
- php函数
php正则判断是否为合法身份证号的方法
•php函数•阅读 419 - /**
- * 判断是否为合法的身份证号码
- * @param $mobile
- * @return int
- */
- functionisCreditNo($vStr){
- $vCity=array(
- ཇ',',ཉ',ཊ',ཋ',ད',དྷ',
- ན',ཛ',ཛྷ',ཝ',ཞ',ཟ',འ',
- ཡ',ཥ',ས',ཧ',ཨ',ཀྵ',ཪ',
- ',',',ཱ',ི',ཹ',ེ',
- ཻ',ོ',ཽ',ྃ',ྍ',ྎ',ྗ'
- );
- if(!<a href="/tags.php/preg_match/" target="_blank">preg_match</a>('/^([\d]{17}[xX\d]|[\d]{15})$/',$vStr))returnfalse;
- if(!in_array(<a href="/tags.php/substr/" target="_blank">substr</a>($vStr, 0, 2),$vCity))returnfalse;
- $vStr= preg_replace('/[xX]$/i','a',$vStr);
- $vLength=strlen($vStr);
- if($vLength== 18) {
- $vBirthday=substr($vStr, 6, 4) .'-'.substr($vStr, 10, 2) .'-'.substr($vStr, 12, 2);
- }else{
- $vBirthday=ཏ'.substr($vStr, 6, 2) .'-'.substr($vStr, 8, 2) .'-'.substr($vStr, 10, 2);
- }
- if(date('Y-m-d',<a href="/tags.php/strtotime/" target="_blank">strtotime</a>($vBirthday)) !=$vBirthday)returnfalse;
- if($vLength== 18) {
- $vSum= 0;
- for($i= 17 ;$i>= 0 ;$i--) {
- $vSubStr=substr($vStr, 17 -$i, 1);
- $vSum+= (pow(2,$i) % 11) * (($vSubStr=='a') ? 10 :intval($vSubStr, 11));
- } //phpfensi.com
- if($vSum% 11 != 1)returnfalse;
- }
- returntrue;
- }