PHP函数实现验证身份证号码并提取年龄

要实现一个 PHP 函数来验证身份证号码并提取年龄,可以使用以下代码:

/**
 * 验证身份证号码并提取年龄
 * @param $id
 * @return false|int|string
 */
function isIdno($id){
   
    $id = strtoupper($id);
    $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";
    $arr_split = array();
    if(!preg_match($regx, $id)){
   
        return false;
    }
    if(15==strlen($id)){
   //检查15位
        $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";
        @preg_match($regx, $id, $arr_split);
        //检查生日日期是否正确
        $dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
        if(!strtotime($dtm_birth)) {
   
            return false;
        }else{
   
            //提取年龄
            $age = date("Y") - (int)substr($id, 6, 2);
            return $age;
        }
    }else{
   //检查18位
        $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";
        @preg_match($regx, $id, $arr_split);
        $dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];

        if(!strtotime($dtm_birth)){
   //检查生日日期是否正确
            return false;
        }else{
   
            //提取年龄
            $age = date("Y") - (int)substr($id, 6, 4);
            return $age;
        }
    }
}

主要实现原理是:首先将身份证号码转换为大写,然后使用正则表达式检查其格式是否正确。如果格式正确,函数将检查出生日期是否正确,然后根据身份证号码的长度进行不同的处理。如果出生日期正确,函数将提取并返回年龄。如果出生日期不正确,函数将返回 false。

相关推荐

  1. PHP函数实现验证身份证号码提取年龄

    2023-12-26 09:40:05       60 阅读
  2. PHP身份证正则验证、校验位验证

    2023-12-26 09:40:05       61 阅读
  3. c# 身份证信息验证

    2023-12-26 09:40:05       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 09:40:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 09:40:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 09:40:05       82 阅读
  4. Python语言-面向对象

    2023-12-26 09:40:05       91 阅读

热门阅读

  1. 当技术相遇:DevOps之道解析

    2023-12-26 09:40:05       54 阅读
  2. C#编程简单应用程序批量修改文件名

    2023-12-26 09:40:05       60 阅读
  3. 世岩清上:光通信产品类企业宣传片制作要点

    2023-12-26 09:40:05       59 阅读
  4. 阿里云 ECS Docker、Docker Compose安装

    2023-12-26 09:40:05       66 阅读
  5. 深入理解pytest.ini文件的配置与使用

    2023-12-26 09:40:05       56 阅读
  6. python环境搭建

    2023-12-26 09:40:05       62 阅读
  7. LeetCode 2974. 最小数字游戏

    2023-12-26 09:40:05       61 阅读
  8. 机器学习之数据扩充

    2023-12-26 09:40:05       57 阅读