前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java 验证身份证号码是否正确

Java 验证身份证号码是否正确

原创
作者头像
IT小马哥
修改于 2020-06-18 02:13:54
修改于 2020-06-18 02:13:54
2.9K0
举报
文章被收录于专栏:Java TaleJava Tale
代码语言:txt
AI代码解释
复制
 /**
 * 
 * @ClassName TestId
 * @author 作者:XiaoMage
 * @version 0.1
 * @Description :
 *          验证身份证号码是否正确!
 */
public class TestId {

    /**
     * @param args String
     */
    public static void main(String[] args) {
        String str ="230231199011024913";
        System.out.println(getValidIdCard(str));

    }
    private static boolean getValidIdCard(String cardid){
        String ls_id = cardid;
        if(ls_id.length() != 18)
        {
            return false;
        }
        char[] l_id = ls_id.toCharArray();
        int l_jyw = 0;
        int[] wi = new int[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
        char[] ai= new char[]{'1','0','X','9','8','7','6','5','4','3','2'};
        for(int i =0 ; i < 17; i++)
        {
            if(l_id[i] < '0' || l_id[i] > '9')
            {
                return false;
            }
            l_jyw += (l_id[i] -'0')*wi[i];
        }
        l_jyw = l_jyw % 11;
        if(ai[l_jyw] != l_id[17])
        {
            return false;
        }
        return true;
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
身份证号码校验算法
1、数字含义 中国大陆第二代身份证号码由18位数据或字母组成,每位数据都有特定的含义,结果如下: 每组数字都有不同的含义: 第1至2位数字代表所在省(直辖市、自治区)的代码; 第3至4位数字代表所在地
Crossin先生
2018/04/17
3.3K0
身份证号码校验算法
Java 验证二代身份证号码是否正确
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153667.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
4980
C语言实例:检查身份证号码的正确性
// // @author: 冲哥 // @date: 2021/7/10 10:40 // @description:C语言实现身份证号码的正确性检查 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> //搜索公众号C语言中文社区,后台回复“C语言”,免费获取200G编程资料。 // 身份证号码检测函数 int Chk18PaperId(const char* sPaperId) {
C语言中文社区
2022/05/30
1.4K0
asp.net 验证身份证号码
using System; /// <summary> /// 验证身份证号码 /// http://www.jbxue.com /// </summary> public class IDCardValid {   public IDCardValid()     {       //       // TODO: Add constructor logic here       //     } } /// <summary> /// 验证身份证号码 /// </summary> /// <param
小语雀网
2022/05/06
6960
Java实现身份证号码验证
package xxx; /** * Created by wdj on 2017/6/21. */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Random; /** * 身份证验证的工具(支持15位或18位省份
Java团长
2018/08/06
3.2K0
身份证号码大 全_622628是哪里的身份证号码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170899.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
1K0
java验证身份证号码是否有效源代码
1、描述 用java语言判断身份证号码是否有效,地区码、出身年月、校验码等验证算法 2、源代码 package test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Hashtable;
代码伴一生
2021/09/19
1.1K0
对身份证号码合法性的验证
对于身份证号码,经常有人只是判断身份证的位数是否为15或18位,是否全部都是数字,这种判断是错误的,因为18位身份证号码允许最后一位为X,不过必须根据特定的算法(最后一位为验证码),下面这段代码就是判断身份证号码是否合法的。
源哥
2018/08/28
7180
算法提高 身份证号码升级
问题描述   从1999年10月1日开始,公民身份证号码由15位数字增至18位。(18位身份证号码简介)。升级方法为:   1、把15位身份证号码中的年份由2位(7,8位)改为四位。   2、最后添加一位验证码。验证码的计算方案:   将前 17 位分别乘以对应系数 (7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2) 并相加,然后除以 11 取余数,0-10 分别对应 1 0 x 9 8 7 6 5 4 3 2。   请编写一个程序,用户输入15位身份证号码,程序生成18位身份证号码。假设所有要升级的身份证的四位年份都是19××年 输入格式   一个15位的数字串,作为身份证号码 输出格式   一个18位的字符串,作为升级后的身份证号码 样例输入 110105491231002 样例输出 11010519491231002x 数据规模和约定   不用判断输入的15位字符串是否合理
AI那点小事
2020/04/20
6950
算法提高 身份证号码升级
身份证号码的正则表达式及验证详解(JavaScript,Regex)
在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案。
毛瑞
2018/05/02
24.2K15
身份证号码的正则表达式及验证详解(JavaScript,Regex)
身份证号码第十八位计算方式
用户只需输入17位身份证号码,点击“计算”按钮,系统将自动计算并显示完整的身份证号码及其相关信息,包括地区、出生日期和性别。
C4rpeDime
2024/12/24
1690
javascript身份证号码验证函数支持带x
// --身份证号码验证-支持新的带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; var  intStrLen  =  num.length; var  idNumber  =  num;     //  initialize if  ((intStrLen  != 15 )  &&  (intStrLen  != 18 )) { // error = "输入身份证号码长度不对!"; // alert(error); // frmAddUser.txtIDCard.focus(); return false ;     }     //  check and set value for (i = 0 ;i < intStrLen;i ++ ) {         varArray[i]  =  idNumber.charAt(i); if  ((varArray[i]  < ' 0 ' ||  varArray[i]  > ' 9 ' )  &&  (i  != 17 )) { // error = "错误的身份证号码!."; // alert(error); // frmAddUser.txtIDCard.focus(); return false ;         }  else if  (i  < 17 ) {             varArray[i]  =  varArray[i] * factorArr[i];         }     } if  (intStrLen  == 18 ) { // check date var  date8  =  idNumber.substring( 6 , 14 ); if  (checkDate(date8)  == false ) { // error = "身份证中日期信息不正确!."; // alert(error); return false ;         }         //  calculate the sum of the products for (i = 0 ;i < 17 ;i ++ ) {             lngProduct  =  lngProduct  +  varArray[i];         }         //  calculate the check digit         intCheckDigit  = 12 -  lngProduct  % 11 ; switch  (intCheckDigit) { case 10 :                 intCheckDigit  = ' X ' ; break ; case 11 :                 intCheckDigit  = 0 ; break ; case 12 :                 intCheckDigit  = 1 ; break ;         }         //  check last digit if  (varArray[ 17 ].toUpperCase()  !=  intCheckDigit) { // err
Java架构师必看
2021/03/22
6070
PHP 验证身份证号码是否正确
阅读量: 85 <?php /** * Created by Liang * Email: 1144828910@qq.com * User: joila * Date: 2020/7/20
李昂君
2021/12/24
1.5K0
如何根据身份证号码计算年龄-python
身份证号码是一个重要的个人标识符,其中包含了关于个人的信息,包括出生日期。通过身份证号码,我们可以计算出一个人的年龄。在本文中,我们将介绍如何使用Python编程语言根据身份证号码计算年龄。
GeekLiHua
2025/01/21
1140
试题 算法提高 身份证号码升级
  从1999年10月1日开始,公民身份证号码由15位数字增至18位。(18位身份证号码简介)。升级方法为:   1、把15位身份证号码中的年份由2位(7,8位)改为四位。   2、最后添加一位验证码。验证码的计算方案:   将前 17 位分别乘以对应系数 (7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2) 并相加,然后除以 11 取余数,0-10 分别对应 1 0 x 9 8 7 6 5 4 3 2。   请编写一个程序,用户输入15位身份证号码,程序生成18位身份证号码。假设所有要升级的身份证的四位年份都是19××年
SingYi
2022/07/13
2690
C#验证二代身份证号码
身份证号码的验证及15位升18位算法 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称”社会保障号码”更名为”公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如下: 一、范围 该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。 二、编码对象 公民身份号码的编码对象是具有中华人民共和国国籍的公民。 三、号码的结构和表示形式 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 2、地址码 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 3、出生日期码 表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。 4、顺序码 表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 5、校验码 (1)十七位数字本体码加权求和公式 S = Sum(Ai * Wi),先对前17位数字的权求和 Ai:表示第i位置上的身份证号码数字值 Wi:表示第i位置上的加权因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
全栈程序员站长
2022/09/14
3480
中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
2.2K0
浅谈正则表达式验证身份证号码(C# winform)
目前我国公民身份证号码由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码。检验码分别是“0、1、2、……10”共11个数字,当检验码为“10”时,为了保证公民身份证号码18位,所以用“X”表示。虽然校验码为“X”不能更换,但若需全用数字表示,只需将18位公民身份号码转换成15位居民身份证号码,去掉第7至8位和最后1位3个数码。
全栈程序员站长
2021/08/12
1.6K0
Java 身份证工具类
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; /** * 身份证工具类
用户7999227
2021/09/23
2.7K0
jQuery验证身份证号码
周末在家很宅,除了玩游戏就是吃好吃的,基本没怎么学习,哈哈,编辑代码之前,先附上一张今天中午做的美食图,自己买的菜和调料,不要太羡慕哈。
王小婷
2019/07/22
2.3K0
相关推荐
身份证号码校验算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档