php验证身份证号码正确性

时间:2022-12-21 10:27:48
发布:JB01   来源:脚本学堂     【  
分享一例php代码,用于验证身份证号码的正确性,用到了preg_match、preg_replace函数,有需要的朋友可以参考学习下。本文转自:http://www.jbxue.com/article/14156.html
本节内容:

验证身份证号码正确性的php代码

例子:

复制代码代码示例:

<?php
/**
 * 验证身份证号
 * by www.jbxue.com
 * @param $vStr
 * @return bool
 */
function isCreditNo($vStr)
{
    $vCity = array(
        '11','12','13','14','15','21','22',
        '23','31','32','33','34','35','36',
        '37','41','42','43','44','45','46',
        '50','51','52','53','54','61','62',
        '63','64','65','71','81','82','91'
    );

if (!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/', $vStr)) return false;

if (!in_array(substr($vStr, 0, 2), $vCity)) return false;

$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 = '19' . substr($vStr, 6, 2) . '-' . substr($vStr, 8, 2) . '-' . substr($vStr, 10, 2);
    }

if (date('Y-m-d', strtotime($vBirthday)) != $vBirthday) return false;
    if ($vLength == 18)
    {
        $vSum = 0;

for ($i = 17 ; $i >= 0 ; $i--)
        { // www.jbxue.com
            $vSubStr = substr($vStr, 17 - $i, 1);
            $vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr , 11));
        }

if($vSum % 11 != 1) return false;
    }

return true;
}

您可能感兴趣的文章:
JS验证身份证有效性的实例代码
asp.net 验证身份证号码的代码一例
C#身份证验证的代码一例
PHP身份证正则验证(兼容15,18位身份证)代码一例
用于身份证验证的不错的js脚本
实现身份证号码验证的js代码
身份证号码验证的正则表达式实例
js 验证身份证号码的代码(附实例、下载地址)
验证身份证号码的js代码(功能强大 非常好用)
验证身份证号码的js代码(完美支持15与18位身份证)
js 身份证号码验证代码(非常好用,支持15 18位)

php验证身份证号码正确性的更多相关文章

  1. C&num;验证身份证号码正确性

    18位号码: private static bool CheckIDCard18(string Id) { ; ), , ) || '), out n) == false) { return fals ...

  2. php验证身份证号码的正确性

    /********************php验证身份证号码是否正确函数*********************/function is_idcard( $id ) {   $id = strto ...

  3. C&num;验证身份证号码

    一.18位的身份证号码 如:130429####%%%%00781.1~6位为地区代码,其中1.2位数为各省级*的代码,3.4位数为地.市级*的代码,5.6位数为县.区级*代码.如13(河北省) ...

  4. php 验证身份证号码

    身份证号码的结构 身份证号码是特征组合码,由17位数字本体码和一位校验码组成. 排列顺序从左至右依此为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 地址码(前六位数) 表示编 ...

  5. js验证身份证号码是否合规

    需求:最近要做实名验证的功能,但是验证身份证号码和身份证图片的接口不想短信,比较贵,所以之前我们要验证严谨一点,参考了网上关于验证身份证号码的代码,总结一下 代码: //验证身份证号码 functio ...

  6. 具体验证身份证号码规则和姓名(汉字)的java代码

    一.验证汉字的正則表達式  /** 是否是汉字的正则 */  private String regexIsHanZi = "[\\u4e00-\\u9fa5]+";   * @pa ...

  7. C&num;后台验证身份证号码的一个方法

    简单的调用了正则表达式进行简单的验证,记下来留着以后备用 if ((!Regex.IsMatch(txtID.Text, @"^(^\d{15}$|^\d{18}$|^\d{17}(\d|X ...

  8. JS正则表达式验证身份证号码

    function isCardNo(card) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{1 ...

  9. jquery正则表达式验证:验证身份证号码

    需求说明: 前端页面使用正则表达式验证文本输入框输入的身份证号码是否符合规则. 代码说明: 这里只介绍正则表达式部分,其他部分的代码不做介绍.如有其它需求请自行修改即可. 步骤一:建立一个页面可以是h ...

随机推荐

  1. 使用Android Butterknife

    我之前浏览过android butterknife 的使用 在android studio 中,很惊喜,已经成为一个插件来使用 这个android butterknife 最大的用处,就是直接生成la ...

  2. 创建一个maven web project

    几经周折总算是找到了和高杨学长一样的web  project的方法.感谢学长的一语点醒.我之前以为,既是maven又是web project的项目得要是通过dynamic web project转换到 ...

  3. 使用git对unity3d项目进行版本控制

    http://*.com/questions/18225126/how-to-use-git-for-unity-source-control The following is ...

  4. DIV内英文或者数字不换行的问题 解决办法

    word-wrap:break-word; word-break:break-all;

  5. 记录一些Linux C的常用库函数

    我已经受不了每次用的时候去百度了,还百度不出来..... [数字字符串转换篇] atof - convert a string to a double #include <stdlib.h&gt ...

  6. 基于synchronized实现的阻塞队列

    package com.lilei.pack09; import java.util.concurrent.ExecutorService; import java.util.concurrent.E ...

  7. SQL反模式学习笔记3 单纯的树

    2014-10-11 在树形结构中,实例被称为节点.每个节点都有多个子节点与一个父节点. 最上层的节点叫做根(root)节点,它没有父节点. 最底层的没有子节点的节点叫做叶(leaf). 中间的节点简 ...

  8. 傻瓜式搭建私人网络硬盘——owncloud安装指南

    百度云这个贱货天天删我资源,我已经忍无可忍了,于是想搭建一个owncloud来放我的里番.使用owncloud不仅安全,而且还可以在线播放,离线下载,功能相当强大. 然而·····网上查了一下,竟然无 ...

  9. Java中字段、属性、成员变量、局部变量、实例变量、静态变量、类变量、常量

    首先看个例子: package zm.demo; public class Demo { private int Id;//成员变量(字段).实例变量(表示该Id变量既属于成员变量又属于实例变量) p ...

  10. HTML的语义化和一些简单优化

    1.什么是语义化? 必应网典的解释 语义化是指用合理HTML标记以及其特有的属性去格式化文档内容.通俗地讲,语义化就是对数据和信息进行处理,使得机器可以理解. 语义化的(X)HTML文档有助于提升你的 ...