身份证检验代码java java身份证识别完整代码

java身份证号位数校验function checkIdcard(num)
{
num = num.toUpperCase();
//身份证号码为15位或者18位 , 15位时全为数字 , 18位前17位为数字,最后一位是校验位,可能为数字或字符X 。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))
{
//alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X 。');
return false;
}
//校验位按照ISO 7064:1983.MOD 11-2的规定生成 , X可以认为是数字10 。
//下面分别分析出生日期和校验位
var len, re;
len = num.length;
if (len == 15)
{
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrSplit = num.match(re);
//检查生日日期是否正确
var dtmBirth = new Date('19'arrSplit[2]'/'arrSplit[3]'/'arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2]))((dtmBirth.getMonth()1) == Number(arrSplit[3]))(dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay)
{
//alert('输入的身份证号里出生日期不对!');
return false;
}
else
{
//将15位身份证转成18位
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10 。
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
num = num.substr(0, 6)'19'num.substr(6, num.length - 6);
for(i = 0; i17; i)
{
nTemp= num.substr(i, 1) * arrInt[i];
}
num= arrCh[nTemp % 11];
return true;
}
}
if (len == 18)
{
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = num.match(re);
//检查生日日期是否正确
var dtmBirth = new Date(arrSplit[2]"/"arrSplit[3]"/"arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2]))((dtmBirth.getMonth()1) == Number(arrSplit[3]))(dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay)
{
//alert(dtmBirth.getYear());
//alert(arrSplit[2]);
//alert('输入的身份证号里出生日期不对!');
return false;
}
else
{
//检验18位身份证的校验码是否正确 。
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10 。
var valnum;
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
for(i = 0; i17; i)
{
nTemp= num.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != num.substr(17, 1))
{
//alert('18位身份证的校验码不正确!应该为:'valnum);
return false;
}
return true;
}
}
return false;
}
var result = checkIdcard(sfzh);
if (!result)
{
$.messager.alert('提示信息','身份证号码格式不正确');
return;
}
java代码怎么校验身份证号码含有非法字符如果只要判断有非法的字符(除0-9和Xx外)可用正则表达式publicstaticvoidmain(String[]args){//TODOcodeapplicationlogichereStrings="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校验身份证号码有专门程序的,可直接校验身份证号是否正确,在自己在网上找下
用java编写验证身份证是否正确的程序代码~System.out.println("请输入身份证检验代码java你身份证检验代码java的身份证号码");
String ID=input.next();
if(ID.lenth()==18){
System.out.println("输入正确")身份证检验代码java;
}else{
System.out.println("输入错误");
}
用JAVA语言写 , 下面是二代身份证号码的检查函数的头部,请根据文档注释完成函数体 。public class CheckID {
/**
* 二代身份证号码检查函数
* @param id 二代身份证号码
* @return 0合格 -1号码是空号 -2号码位数不对 -3含有非法号码 -4日期(年月日)不对 -5校验码不对
*/
public static int idCheck(String id){
if(id.equals(""))
return -1;
if(id.length() != 18)
return -2;
if(!checkNum(id))
return -3;
if(!checkDate(id))
return -4;
if(!checkCode(id))
return -5;
return 0;
}
//检查每一位是否正确
public static boolean checkNum(String id){
for(int i = 0; iid.length() -1; i){
if(!Character.isDigit(id.charAt(i)))
return false;
}
//判断最后一位身份证检验代码java,如果不是数字而且也不为X
if(!(Character.isDigit(id.charAt(17)) || id.charAt(17)=='X'))
return false;
return true;
}
//检查日期格式
public static boolean checkDate(String id){
int year = Integer.parseInt(id.substring(6, 10));
int month = Integer.parseInt(id.substring(10, 12));
int day = Integer.parseInt(id.substring(12, 14));
if(year2000 || year1880)
return false;
if(month12 || month1)
return false;
//处理每一个月份所对应身份证检验代码java的天数是否合法
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
if(day31 || day1)
return false;
}else if(month==4 || month==6 || month==9 || month==11){
if(day30 || day1)
return false;
}else{
if((year%4==0year0!=0) || year@0==0){
if(day29 || day1)
return false;
}else{
if(day28 || day1)
return false;
}
}
return true;
}
//检查校验码
public static boolean checkCode(String id){
int[] codes = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char[] result = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
int sum = 0;
for(inti = 0; iid.length()-1; i){
sum= (Integer.parseInt(id.substring(i, i 1))) * codes[i];
}
if(result[sum] != id.charAt(17))
return false;
return true;
}
使用java判断输入身份证号位数是否正确,判断输入是否有效?public static void getString(){\x0d\x0aString a,b;\x0d\x0awhile (true) {\x0d\x0aScanner input = new Scanner(System.in);\x0d\x0aSystem.out.println("请输入您的18位身份证号码!!");\x0d\x0aa = (String) input.next();\x0d\x0aif (a.length() == 18) {\x0d\x0aa.matches("/D");\x0d\x0ab = a.substring(6, 14);\x0d\x0aSystem.out.println("请的出生日期为:"b);\x0d\x0aif(a.charAt(16)%2 == 0)\x0d\x0a{\x0d\x0aSystem.out.println("您的性别是女性!");\x0d\x0a}else{\x0d\x0aSystem.out.println("您的性别是男性!");\x0d\x0a}\x0d\x0a} else {\x0d\x0aSystem.out.println("您输入的身份证错误!!");\x0d\x0a}\x0d\x0a}\x0d\x0a }
【身份证检验代码java java身份证识别完整代码】关于身份证检验代码java和java身份证识别完整代码的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读