`

身份证号码验证位的计算

js 
阅读更多
//15位身份证号码 = 地址码(6位) + 出生日期码(6位) + 顺序码(3位)
//18位身份证号码 = 地址码(6位) + 出生日期码(8位) + 顺序码(3位) + 校验码(1位)
//18位身份证号码中的顺序码的最后一位奇数代表性别男,偶数代表性别女

// 计算18位身份证号码校验位
function y(notext) {
	var len = notext.length;
	
	if(len != 18)
		return null;
	
	// 加权因子
	var ws = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
	// 校验码
	var ys = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
	
	// S = Sum(Ai * Wi), i = 0, ... , 16
	var S = 0;
	for(var i = 0; i < 17 && i < len; i++) {
		S = S + (parseInt(notext.charAt(i)) * ws[i]);
	}
	
	// Y = mod(S, 11)
	var Y = S % 11;
	
	return ys[Y];
}
分享到:
评论

相关推荐

    javascript身份证号码验证-支持15位和18位带x身份证

    本篇将详细探讨如何使用JavaScript进行15位和18位,特别是18位带有字母“X”的身份证号码的验证。 首先,我们需要理解身份证号码的结构。15位身份证号码由6位地区码、7位出生日期码和2位顺序码组成;18位身份证号码...

    身份证号码验证程序 javascript验证的html文件

    这个压缩包中的"身份证验证程序.html"文件是一个使用JavaScript编写的HTML页面,它用于验证输入的身份证号码是否合法。以下是对这个知识点的详细阐述: 1. **HTML(超文本标记语言)**:HTML是构建网页的基础,它...

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

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

    Linux shell编程 验证身份证号码(15/18)

    - **18位验证**:验证第18位校验码是否与计算值匹配,如果不匹配,则认为身份证号码无效。 - **地址信息查询**:利用数据库文件`AreaDB.1st`和`AreaDB.2nd`,通过正则表达式`grep`检索地址信息,进一步完善身份信息...

    身份证号码验证示例源码2008-4-22

    - 在这个示例源码中,可能会包含一个C#函数,该函数接收身份证号码作为输入,使用正则表达式进行初步格式验证,然后根据身份证号码的位数进行15位到18位的转换和校验码的计算。 5. **源码分析** - 分析源码时,...

    身份证号码验证的代码

    可以编写一个自定义函数,通过计算身份证号码的校验码来验证其有效性。这通常涉及到对身份证号码的每一位进行加权求和,然后模11取余,得到的余数与校验码进行比较。如果相符,则校验通过。 ```csharp public ...

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

    4. **校验码**:对于18位身份证号码,第18位是根据前17位计算得出的校验码。 #### 四、正则表达式的构建 根据以上规则,我们可以构建出一个符合中国身份证号码格式的正则表达式: ```java String regex = "^(\\d{15...

    验证身份证号码有效性的js

    总之,验证身份证号码的JavaScript实现涉及字符串操作、数组处理、数学计算以及对身份证号码结构的理解。以上代码提供了一个基础的验证框架,但实际应用中可能需要根据具体需求进行调整和完善。在开发过程中,应始终...

    一个关于身份证号码验证程序

    身份证验证程序的核心是校验码的计算。校验码的计算方法如下: 1. 将前17位数字分别乘以不同的系数(系数为:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2),然后求和。 2. 将求和结果对11取模,得到余数。 3. 根据余数...

    js最权威身份证号码验证

    * 18位号码加权因子为(从右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ] * 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 ) * i...

    JAVA验证身份证号码校验码是否正确.zip

    这个方法首先检查身份证号码的长度,然后逐位计算乘积并求和,接着计算校验码,并与身份证号码的最后一位进行比较。如果两者相符,则身份证号码有效。 在实际应用中,你还可以添加更多的错误处理和异常处理机制,以...

    C#根据身份证号码计算年龄和性别

    这段代码演示了如何从身份证号码中提取出生日期并计算年龄,以及如何根据第17位确定性别。 5. **异常处理**: 在实际应用中,还需要考虑身份证号码格式错误的情况,可以添加异常处理代码来确保输入的有效性。 6....

    SQL15位和18位公民身份证校验函数

    4. **15位身份证号码验证**:对于15位身份证号码,仅检查其格式是否正确,即前6位为地区码,接下来的6位是否能转换为日期(由于缺少两位年份,需加上"19"来构成完整的四位年份),以及整个字符串是否全部为数字。...

    身份证号码校验位的计算方法

    身份证号码是中国公民身份识别的重要证件,其正确性...通过结合这些文件,可以构建一个完整的Delphi应用程序,该程序能够接收用户输入的身份证号码,进行校验位计算并显示校验结果,为业务处理提供可靠的身份验证支持。

    java身份证号验证源代码

    在Java编程中,身份证号码验证是一项常见的需求,用于确保输入的身份信息准确无误。身份证号码是由18位数字组成的,包含个人的出生日期、性别、地区等信息,并且具有特定的校验规则。本篇文章将深入讲解如何使用Java...

    SQL 存储过程 身份证号码验证完整算法

    身份证号码验证算法 (一) 18身份证号码的结构  公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。 排列顺序从左至右依次为:六位数字地址码 + 八位数字出生日期码 + 三位数字顺序码 + 一位校验码。...

    身份证号码验证源代码

    ### 汇编语言实现身份证号码验证的知识点详解 #### 一、背景介绍 身份证号码是中国公民的身份标识,由18位数字组成,包含了丰富的个人信息,如出生年月日、性别、户籍所在地等。本程序利用汇编语言(具体为80x86...

    js身份证号验证

    5. 比较计算出的校验码与身份证号码实际的最后一位,如果不匹配,则表示身份证号码无效,返回错误信息;否则,格式化身份证号码并返回`true`。 对于15位的身份证号码,验证相对简单,只需要检查输入是否全为数字...

Global site tag (gtag.js) - Google Analytics