php正则判断是否为合法身份证号的方法
发布:smiling 来源: PHP粉丝网 添加日期:2018-08-09 09:49:04 浏览: 评论:0
- /**
- * 判断是否为合法的身份证号码
- * @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;
- }
Tags: php正则 php身份证号
相关文章
- ·php正则表达式 preg_replace替换(2014-06-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)