最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php正则判断是否为合法身份证号的方法
时间:2017-07-03 编辑:简简单单 来源:一聚教程网
代码如下 | 复制代码 |
/** * 判断是否为合法的身份证号码 * @param $mobile * @return int */ functionisCreditNo($vStr){ $vCity=array( ཇ',',ཉ',ཊ',ཋ',ད',དྷ', ན',ཛ',ཛྷ',ཝ',ཞ',ཟ',འ', ཡ',ཥ',ས',ཧ',ཨ',ཀྵ',ཪ', ',',',ཱ',ི',ཹ',ེ', ཻ',ོ',ཽ',ྃ',ྍ',ྎ',ྗ' ); if(!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/',$vStr))returnfalse; if(!in_array(substr($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',strtotime($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)); } if($vSum% 11 != 1)returnfalse; } returntrue; } |
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24