身份证效验

 1 /// 作者:林宏权
 2 /// http://www.songzhuren.com/
 3 ///
 4 using System;
 5 using System.Collections.Generic;
 6 using System.Linq;
 7 using System.Text;
 8
 9 namespace IDCardCheck
10 {
11     class IDCard
12     {
13
14         //加权算法第一位到第十七位的系数:
15         int[] iW = new int[] { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
16
17         //身份证效验码字符串,与加权算法对位对应.
18         string Lastcode = "10X98765432";
19
20         /// <summary>
21         /// 获取身份证的第18位效验码.
22         /// </summary>
23         /// <param name="remainder"></param>
24         /// <returns>第18位效验码字字符串.</returns>
25         public string GetLastCode(int remainder)
26         {
27             //根据加权算法所获取的余数,返回对应的效验码.
28             return Lastcode[remainder].ToString();
29         }
30
31         /// <summary>
32         /// 通过加权算法,获取效验码的余数.
33         /// </summary>
34         /// <param name="IDCardNumber"></param>
35         /// <returns></returns>
36         public int GetTheRemainder(string IDCardNumber)
37         {
38             int theSum = 0;
39             //通过加权算法,求出身份证前17位的加权和.
40             for (int position = 0; position < 17;position++ )
41             {
42                 theSum += int.Parse(IDCardNumber[position].ToString()) * iW[position];
43
44             }
45             //加权和 除以 11 所得的余数为实验码对应余数.
46             return theSum % 11;
47         }
48     }
49 }
时间: 2024-10-29 19:06:21

身份证效验的相关文章

身份证js验证

<script type="text/javascript"> //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num) { var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var error; var varArray = new Array(); var intValue; var lngProduct = 0; var intCheckDigit;

javascript验证

/* 1.是否以某字符串结尾 endsWith(theStr,endStr) @param theStr:要判断的字符串 @param endStr:以此字符串结尾 @return boolean; */ function endsWith(theStr,endStr) { var theStrLength=theStr.length; var endStrLength=endStr.length; var theStrEnd=theStr.substring(theStrLength-endS

通用js函数集锦&lt;来源于网络/自己&gt; 【一】

通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用户设备来源7.JS验证邮件地址是否合法8.JS获取字符串长度(区分中英文) 中文算2个字,英文一个9.检查手机号码是否合法10.验身份证号码是否正确11.删除cookie12.数组是否包函字符串元素13.后退14.向上滚动到指定位置15.判断是否为身份证16.判断是否为2~15字姓名17.修复IE中 inpu

JQuery easyUI扩展验证机制的正则表达式

$.extend($.fn.validatebox.defaults.rules, { //验证中文 CHS:{ validator:function(value){ return /^[\u0391-\uFFE5]+$/.test(value); }, message:"只能输入汉字." }, //字符验证 stringCheck:{ validator:function(value){ return /^[\u0391-\uFFE5\w]+$/.test(value); }, me

Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位为出生年份(2位),9-10位为出生月份,11-12位为出生日期,第13-15位为顺序号,这3位奇数为男,偶数为女.(2)18位:1-6位为地区代码,7-10位为出生年份(4位),11-12位为出生月份,13-14位为出生日期,第15-17位为顺序号,同上,第18位为效验位. 在工作时,有时希望通过身份证号码,自动提取出出生日期.性别.年龄等信息.现在我们就通过几个公式,来得

原问题:身份证为什么只有15位

身份证为什么只有15位 目前我国公民身份证号码由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码.检验码分别是“0.1.2.……10”共11个数字,当检验码为“10”时,为了保证公民身份证号码18位,所以用“X”表示.虽然校验码为“X”不能更换,但若需全用数字表示,只需将18位公民身份号码转换成15位居民身份证号码,去掉第7至8位和最...全部目前我国公民身份证号码由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码

[转]身份证从 15 &gt;&gt; 18

身份证号码的结构和表达形式 1.号码的结构 由十七位数字本体码和一位效验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字效验码.2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行.3.出生日期码 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符.4.顺序码 表示在同一地址码所标识的区域范围内,对同年.同月.同日出生的人编订的顺序号,顺序码的奇数分配给男性,偶数分配给女

身份证验证

function checkIdCard(id){ var result=null; var regExp = /^[a-zA-Z][0-9]{6}\([\w]{1}\)$/ ; //用于匹配香港身份证 if (id.length == 15) { result=id.match('\^(11|12|31|51|15|65|54|64|45|81|82|23|22|21|13|14|63|37|41|32|34|35|36|43|42|44|46|62|61|51|52|53|71|33|50)

校验身份证 时间日期格式

//将标准时间转为xxxx-xx-xxvar formatDateTime = function (date) { var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? '0' + m : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; return y + '-' + m + '-' + d; };//效验身份证function Identity