`
dreamoftch
  • 浏览: 496773 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

简单身份证号校验

阅读更多

 

 

kotlin代码:

 

    private fun validateIdCard(cardNo: String?): Boolean {
        cardNo ?: return false
        if (cardNo.length != 18 || !cardNo.substring(0, 17).matches(Regex("\\d{17}"))) {
            return false
        }
        // 身份证号前17位分别和下面的array中对应的值相乘之后求和
        // 然后模11之后的结果作为数组下标,去validCodes中取正确的尾号和参数中的尾号做校验接即可
        val intArr = arrayOf(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
        var sum = 0
        for (idx in intArr.indices) {
            sum += Character.digit(cardNo[idx], 10) * intArr[idx]
        }
        val mod = sum % 11
        val validCodes = arrayOf("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
        return validCodes[mod] == cardNo.substring(cardNo.length - 1)
    }

 

只根据前17位算出正确的尾号来校验

分享到:
评论

相关推荐

    C++身份证号码校验

    下面提供一个简单的C++函数来实现上述身份证号码的校验: ```cpp #include #include bool isValidIDCard(const std::string& idCard) { if (idCard.length() != 18) return false; // 地址码、出生日期码、...

    java写的身份证号码校验类

    本篇介绍了一个简单的Java实现,用于校验中国大陆身份证号码的合法性。通过对身份证号码结构的分析以及校验码计算公式的推导,我们能够确保身份证号码的有效性和准确性。这种校验方法广泛应用于各种系统中,确保用户...

    免费小型身份证校验接口

    ### 知识点一:身份证校验接口的基本概念 身份证校验接口是一种专门用于验证身份证号码真实性的网络服务。在本案例中,该接口通过发送HTTP请求至特定URL(如`https://shenfen.supfree.net/search.asp?id=身份证号`...

    使用Java正则表达式实现一个简单的身份证号码验证

    ### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...

    正则表达式校验身份证号码

    alert('18位身份证校验码不正确, 应该为' + valnum); return false; } ``` #### 总结 通过以上介绍,我们可以看到使用正则表达式进行身份证号码的简单校验是一种快速有效的方法,而复杂的校验则能够进一步确保...

    Excel 身份证号码校验 年龄 性别提取 银行卡数字校验

    身份证和银行卡号码的最后一位都是用前面的数字计算而来的校验码,所以可以在一定程度上减少误输入的可能。 此文件包含身份证、19位银行卡号码校验,年龄提取,性别提取的公式。 使用方式,非常简单,打开此文件,...

    IDCard身份证号校验

    以下是一个简单的PHP身份证校验函数示例: ```php function validateIdCard($idCard) { if (strlen($idCard) != 18 || !ctype_digit(str_replace('X', '', $idCard))) { return false; } $idCard = strtoupper...

    身份证批量校验的工具(只有一个HTML文件)

    在进行身份证校验时,此工具主要关注以下几个关键方面: 1. 长度检查:首先,工具会验证输入的身份证号码长度,确保其是15位或18位。15位身份证号码是旧版格式,而18位是现在通用的标准格式。18位身份证号码提供了...

    Excel自定义函数_身份证号码校验

    在Excel中进行身份证号码校验是一项常见的数据验证工作,尤其在处理大量个人数据时显得尤为重要。ExcelDNA是一种强大的工具,它允许用户创建自定义的Excel函数,这些函数可以利用.NET Framework的强大功能,使得...

    身份证校验

    例如,`身份证验证.vbp`和`身份证验证.vbw`可能是VB6工程文件,用于构建一个简单的身份证校验程序,而`frmMain.frm`和`frmMain.frx`则是该程序的主界面和资源文件,用户可以输入身份证号并查看校验结果。 在实际...

    Excel中身份证号码检验函数

    在中国,18位身份证号码由行政区划代码、出生日期、性别标识和校验码四部分组成。每个部分都有特定的编码规则,例如前6位代表地区代码,7到14位是出生年月日,15位是性别(奇数为男性,偶数为女性),最后一位是校验...

    JAVA 18位身份证号码校验码的算法

    在Java编程语言中,身份证号码的校验码计算是一个常见的需求,主要用于确保输入的18位身份证号码的有效性。这个算法主要应用于中国的居民身份证,它包含个人出生日期、性别、地区编码等信息,并通过特定的校验算法来...

    js校验身份证号和银行卡号

    提供的"js校验身份证号"和"js校验银行卡号"文件可能包含了这些更复杂的实现。通过学习和理解这些代码,开发者可以更好地实现身份证号和银行卡号的验证功能,提高用户体验,同时确保数据的安全性和准确性。

    易语言身份证校验源码

    在给定的“易语言身份证校验源码”中,我们可以深入探讨身份证号码的校验机制以及如何用易语言实现这一功能。 首先,身份证号码是由18位数字组成,包括6位地址码、8位出生日期码和3位顺序码(奇数年出生的男性以...

    身份证js强校验

    身份证js强校验,简单实用,直接可以测试。

    身份证校验码方法-Java

    下面是一个简单的Java示例代码,用于演示如何实现身份证校验码的验证功能。 ```java public class IDNumberValidator { private static final String[] VERIFY_CODES = {"1", "0", "X", "9", "8", "7", "6", "5", ...

    js身份证号与性别校验

    身份证校验 请输入身份证号"> ()">校验 <p id="result"></p> // 实现上述的JavaScript函数... function validate() { const idCard = document.getElementById('idNumber').value; if (!checkLength...

    VB编写的身份证校验程序

    ### VB编写的身份证校验程序知识点解析 #### 一、程序功能概述 该VB程序的主要功能是校验中国大陆居民身份证号码的有效性。中国大陆居民身份证号码分为两种格式:15位和18位。15位身份证号码现已停用,但为了兼容旧...

    PHP精确验证身份证号

    身份证号码是中国公民的重要身份标识,由18位数字组成,包含出生日期、性别、地区代码以及校验码。为了确保输入的数据是有效的,我们可以编写专门的函数来验证身份证号码。 首先,我们需要理解身份证号码的结构。前...

    C++中身份证号码验证代码

    校验码是根据前17位数字通过特定算法计算得出的,用于检验身份证号码的正确性。 在`checkID.cpp`文件中,程序可能会包含以下几个关键步骤: 1. **数据输入**:首先,程序需要获取用户的输入,这通常通过`std::cin`...

Global site tag (gtag.js) - Google Analytics