public class IDCard { /** * 17位奇数男,偶数女,15,16,17随机,18位算出来的 */ private static final String ss = ""; //第18位校验码 private static final String[]v18 = { "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"}; //加权因子--7,9,10,5,8,4,2,1,6,3循环 private static final int[] params = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; private static Map<String, String> cityCodes = new HashMap<String, String>(); public static void init(){ cityCodes.put("11", "北京"); cityCodes.put("12", "天津"); cityCodes.put("13", "河北"); cityCodes.put("14", "山西"); cityCodes.put("15", "内蒙古"); cityCodes.put("21", "辽宁"); cityCodes.put("22", "吉林"); cityCodes.put("23", "黑龙江"); cityCodes.put("31", "上海"); cityCodes.put("32", "江苏"); cityCodes.put("33", "浙江"); cityCodes.put("34", "安徽"); cityCodes.put("35", "福建"); cityCodes.put("36", "江西"); cityCodes.put("37", "山东"); cityCodes.put("41", "河南"); cityCodes.put("42", "湖北"); cityCodes.put("43", "湖南"); cityCodes.put("44", "广东"); cityCodes.put("45", "广西"); cityCodes.put("46", "海南"); cityCodes.put("50", "重庆"); cityCodes.put("51", "四川"); cityCodes.put("52", "贵州"); cityCodes.put("53", "云南"); cityCodes.put("54", "西藏"); cityCodes.put("61", "陕西"); cityCodes.put("62", "甘肃"); cityCodes.put("63", "青海"); cityCodes.put("64", "宁夏"); cityCodes.put("65", "新疆"); cityCodes.put("71", "台湾"); cityCodes.put("81", "香港"); cityCodes.put("82", "澳门"); cityCodes.put("91", "国外"); } public static boolean verify(String idcard){ String pre17=idcard.substring(0, 17); char[] c17 = pre17.toCharArray(); int sum = 0; for (int i = 0; i < c17.length; i++) { int c = Character.getNumericValue(c17[i]); int p = params[i]; sum+=c*p; } int a = sum%11; if(a==2){//字母 }else {//数字 } String last_v=v18[a]; System.out.println(last_v); return last_v.equals(idcard.charAt(17)+""); } public static void main(String[] args) { String idcard = "110203199001231238"; System.out.println(verify(idcard)); } }
相关推荐
首先,我们来了解一下身份证号码的基本构成。中国的居民身份证号码共18位,分为6个部分:地区码(前6位)、出生日期码(7-14位)、顺序码(15-17位,奇数表示男性,偶数表示女性)、校验码(最后一位)。校验码是...
在C++编程中,身份证号码验证是一个常见的任务,主要用于确保用户输入的身份信息是合法的。...同时,这个项目也让我们理解了身份证号码的结构和验证规则,对于理解实际应用中的数据验证有很好的实践意义。
身份证号码是由18位数字组成的,包含个人的出生日期、性别、地区等信息,并且具有特定的校验规则。本篇文章将深入讲解如何使用Java编写身份证号验证的源代码。 首先,了解身份证号码的基本结构。中国的身份证号码前...
### 一、身份证号码结构与验证规则 中国居民身份证号码由18位数字组成,分为四部分: 1. **前六位**:表示行政区划代码。 2. **接下来八位**:出生日期,格式为YYYYMMDD。 3. **接下来三位**:顺序码,奇数分配给...
这个示例中的JavaScript代码首先检查了身份证号码的基本格式,然后通过`city.js`中的数据验证行政区域代码,再检查出生日期是否合理,最后计算校验码并与输入的校验码对比。如果所有验证都通过,就会在页面上显示...
在C#编程中,验证身份证号码是否符合规则是一项常见的任务,尤其在处理用户注册、个人信息录入等场景。身份证号码是中国公民的唯一标识,由18位数字组成,包含出生日期、地区代码以及一个校验码。为了确保输入的...
以上知识和代码片段提供了一个基本框架,可用于开发更复杂的身份证验证功能,如年龄计算、性别判断等。 总之,身份证验证在许多应用中都是一个关键环节,尤其是在用户注册、身份认证或数据录入等场景下,确保身份证...
基本规则 身份证号码分为两种格式:15位和18位。 - **15位身份证号码**: - 由7位地区码、4位出生日期(YYMMDD)、4位顺序号组成。 - 出生年份为两位数,通常默认为1900年后的年份。 - **18位身份证号码**: -...
通过以上分析,我们可以看出这段JavaScript脚本主要实现了对身份证号码的基本验证,包括地区编码、生日日期以及18位身份证的校验码验证。开发者可以根据具体需求调整和扩展该脚本的功能,以满足更复杂的验证场景。...
易语言身份证格式验证模块例程的核心任务就是检查输入的字符串是否符合这个规则。它通常会包含以下几个步骤: 1. **长度检查**:首先判断输入的身份证号码长度是否为18位,如果不是,则立即返回验证失败。 2. **...
3. .NET框架提供的`System.ComponentModel.DataAnnotations`命名空间中的`RegularExpressionAttribute`,可以方便地在属性上声明验证规则,例如在MVC或Entity Framework中使用。 4. **异常处理**: 在验证过程中,...
首先,身份证验证涉及到的是中国公民身份证号码的编码规则。中国的身份证号码由18位数字组成,包含了出生日期、性别、地区代码等信息。验证身份证号码时,我们需要检查号码的结构是否符合规则,如前6位代表地区代码...
- **扩展应用**:除了上述几种基本的验证方式外,还可以根据实际需求添加更多的验证逻辑,比如日期验证、电话号码验证等。 - **安全性**:虽然前端验证可以提供良好的用户体验,但不应仅依赖前端验证。所有的验证都...
身份证号码验证程序是一种用于确认个人身份的工具,它基于中国公民身份证号码的编码规则进行校验。中国的身份证号码由18位数字组成,分为多个部分,每部分都有特定的含义。下面将详细介绍身份证号码的结构及其验证...
本压缩包提供的资源“js验证身份证”包含了一个JavaScript函数,用于检查输入的身份证号码是否符合15位或18位身份证号码的规则。 首先,我们来了解一下中国身份证的基本结构。15位身份证号码在1999年后已经被18位...
- **验证身份证有效性**:将输入的18位身份证号码与计算出的校验码进行比较,如果一致,说明身份证号码基本正确。但请注意,这种验证方法只能检查数字的数学一致性,无法判断身份证是否真实存在,因为没有连接到任何...
通过上述方法,我们可以有效地验证用户的身份证号码是否符合基本的格式要求。虽然正则表达式能够解决大部分问题,但对于复杂的校验逻辑,如计算校验码等,则需要额外的算法支持。总之,在实际应用中结合业务需求进行...
在现代Web开发中,表单验证是一项非常重要的任务,它确保用户输入的数据符合预期格式与规则。身份证号码验证作为其中的一个典型场景,对于确保数据的有效性和合法性至关重要。本文将详细解析一个用JavaScript编写的...
这种验证需要考虑到身份证号码的组成规则,包括地区码、出生日期码、顺序码和校验码。一个简单的身份证号验证正则表达式可以是: ```csharp string idCardRegex = @"^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|...
首先,要进行身份证验证,我们需要了解身份证号码的规则。前6位代表持证人的户籍所在地,接下来的8位表示出生日期(格式为YYYYMMDD),第14至17位是顺序码,奇数分配给男性,偶数分配给女性,第18位是校验码,用于...