「java校验身份证」java校验身份证合法性注解

博主:adminadmin 2022-11-27 06:04:06 41

本篇文章给大家谈谈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; i 17; 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; i 17; 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判断输入身份证号位数是否正确?判断输入是否有效?

public static void getString(){\x0d\x0a String a,b;\x0d\x0a while (true) {\x0d\x0a Scanner input = new Scanner(System.in);\x0d\x0a System.out.println("请输入您的18位身份证号码!!");\x0d\x0a a = (String) input.next();\x0d\x0a if (a.length() == 18) {\x0d\x0a a.matches("/D");\x0d\x0a b = a.substring(6, 14);\x0d\x0a System.out.println("请的出生日期为:" + b);\x0d\x0a if(a.charAt(16)%2 == 0)\x0d\x0a {\x0d\x0a System.out.println("您的性别是女性!");\x0d\x0a }else{\x0d\x0a System.out.println("您的性别是男性!");\x0d\x0a }\x0d\x0a } else {\x0d\x0a System.out.println("您输入的身份证错误!!");\x0d\x0a }\x0d\x0a }\x0d\x0a }

java字符串操作,验证输入的身份证合法与否

/**

* 定义一个方法,输入一个身份证号码(18)位,最终返回一个字符串,格式如下:“尊敬的男士(女士),您是****年**月**日出生的。”

* 要求:如果输入的身份证不是18位,或者格式不正确(包含非数字字符,除了最后一位的X除外)则返回一个字符串“您输入的身份证号码有误”

* */

import java.util.Scanner;

public class JudgeID {

public static void main(String[] args){

Scanner reader = new Scanner(System.in);

System.out.println("请输入您的id号码");

String id = reader.next();

System.out.println(judgeID(id));

}

public static String judgeID(String IDNumber){

int len = IDNumber.length();

String wrongMsg = "您输入的身份证号有误";

String correctMsg = null;

char lastChar = IDNumber.charAt(len-1);

String year = null;

String month = null;

String day = null;

if(len != 18){

return wrongMsg;

}

for(int i = 0; i len-1; i++){

if(IDNumber.charAt(i) '0' || IDNumber.charAt(i) '9' ){

return wrongMsg;

}

}

if(lastChar != 'X' lastChar '0' lastChar '9'){

return wrongMsg;

}

//如果身份证格式是没有问题的,那个打印年月日信息

year = IDNumber.substring(6,10);

month = IDNumber.substring(10,12);

day = IDNumber.substring(12,14);

correctMsg = "您是"+year+"年"+month+"月"+day+"日出生!";

return correctMsg;

}

}

关于java校验身份证和java校验身份证合法性注解的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。