迅睿框架 版主:迅睿框架研发组
前台如何把身份证中间生日字段改为*号
类型:迅睿CMS 更新时间:2025-08-08 10:25:38

请教大佬们,前台如何把身份证中间生日字段改为*号

回帖
  • 迅睿官方创始人
    #1楼    迅睿官方创始人
    2025-08-08 10:25:38
    Chrome 0
    这个好办,百度AI生成一个php函数就行
    <?php
    /**
     * 将身份证号码中的生日部分替换为星号
     * @param string $idCard 身份证号码
     * @return string 脱敏后的身份证号码
     */
    function maskIdCardBirthday($idCard) {
        // 验证身份证长度(15位或18位)
        if (strlen($idCard) !== 15 && strlen($idCard) !== 18) {
            return $idCard;
        }
        
        // 处理18位身份证
        if (strlen($idCard) === 18) {
            return substr($idCard, 0, 6) . '********' . substr($idCard, 14);
        }
        
        // 处理15位身份证
        return substr($idCard, 0, 6) . '******' . substr($idCard, 12);
    }
    
    // 使用示例
    $idCard18 = '110105199003072316';
    $idCard15 = '110105900307231';
    
    echo maskIdCardBirthday($idCard18); // 输出:110105********2316
    echo maskIdCardBirthday($idCard15); // 输出:110105******231
    ?>