从身份证中提取出生日期

1.身份证号码相关知识:
在了解如何实现自动从身份证号码中提取出生年月、性别信息之前,首先需要了解身份证号码所代表的含义。我们知道,当今的身份证号码有15/18位之分。早期签发的身份证号码是15位的,现在签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。这两种身份证号码将在相当长的一段时期内共存。两种身份证号码的含义如下:

(1)15位的身份证号码:1~6位为地区代码,7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期,第13~15位为顺序号,并能够判断性别,奇数为男,偶数为女。

(2)18位的身份证号码:1~6位为地区代码,7~10位为出生年份(4位),11~12位为出生月份,13~14位为出生日期,第15~17位为顺序号,并能够判断性别,奇数为男,偶数为女。18位为效验位。

2.Java实现:
/**
* 获取生日辅助类
*
* @author huruifeng pm 10-30 15:23
*
*/
public class BirthdayUtil {

/**
* 根据身份证号码获取
*
* @param idCard
* @return String
*/
public static String getBirthdayByIdCard(String idCard) {
String idCardNumber = idCard.trim();
int idCardLength = idCardNumber.length();
String birthday = null;
if (idCardNumber == null || "".equals(idCardNumber)) {
return null;
}
if (idCardLength == 18) {
birthday = idCardNumber.substring(6, 10) + "-"
+ idCardNumber.substring(10, 12) + "-"
+ idCardNumber.substring(12, 14);
}
if (idCardLength == 15) {
birthday = "19" + idCardNumber.substring(6, 8) + "-"
+ idCardNumber.substring(8, 10) + "-"
+ idCardNumber.substring(10, 12);
}
return birthday;
}
}

3.JS实现
// 从身份证中提取出生日期,不要错误提示
function getBirth() {
var mycardtype = document.forms[0]["preenrollment.cardtype"].value;var mycardno = document.forms[0]["preenrollment.cardno"].value;var mylen = mycardno.length;if (mycardtype == basicInfo["cardtype"]["identity"]&&document.forms[0]["preenrollment.birthdate"].value=="") {if (mycardno != null && mycardno != "") {if (!checkCardNoAlert(mycardno)) {return false;} else {var mybyear;var mybmon;var mybday;var mybirth;if (mylen == 18) {mybyear = mycardno.substring(6, 10);mybmon = mycardno.substring(10, 12);mybday = mycardno.substring(12, 14);mybirth = mybyear + "-" + mybmon + "-" + mybday;}if (mylen == 15) {mybyear = mycardno.substring(6, 8);mybmon = mycardno.substring(8, 10);mybday = mycardno.substring(10, 12);mybirth = "19" + mybyear + "-" + mybmon + "-" + mybday;}document.forms[0]["preenrollment.birthdate"].value = mybirth;}}}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值