从身份证号码中获取用户的性别和生日
最近有项目在用,于是整理了下,分Javascript版和Java两个版本,不过实现大同小异:
Java实现,分成两个方法,方便获取:
public static boolean getSexFromID(String val) {
boolean sex = false;
// 15位身份证号码
if (15 == val.length()) {
if (Integer.valueOf(val.charAt(14) / 2) * 2 != val.charAt(14))
sex = true;
else
sex = false;
}
// 18位身份证号码
if (18 == val.length()) {
if (Integer.valueOf(val.charAt(16) / 2) * 2 != val.charAt(16))
sex = true;
else
sex = false;
}
return sex;
}
public static Date getBirthdayFromID(String val) {
String birthday = "";
// 15位身份证号码
if (15 == val.length()) {
birthday = val.charAt(6) + "" + val.charAt(7);
if (Integer.parseInt(birthday) < 10) {
birthday = "20" + birthday;
} else {
birthday = "19" + birthday;
}
birthday = birthday + "-" + val.charAt(8) + "" + val.charAt(9)
+ "-" + val.charAt(10) + "" + val.charAt(11);
}
// 18位身份证号码
if (18 == val.length()) {
birthday = val.charAt(6) + "" + val.charAt(7) + "" + val.charAt(8)
+ "" + val.charAt(9) + "-" + val.charAt(10) + ""
+ val.charAt(11) + "-" + val.charAt(12) + ""
+ val.charAt(13);
}
return birthday;
}
Javascript实现:
function showBirthday(val){
var birthday;
var sex;
//15位身份证号码
if (15 == val.length) {
birthday = val.charAt(6) + val.charAt(7);
if (parseInt(birthday) < 10) {
birthday = '20' + birthday;
}
else {
birthday = '19' + birthday;
}
birthday = birthday + '-' + val.charAt(8) + val.charAt(9) + '-' + val.charAt(10) + val.charAt(11);
if (parseInt(val.charAt(14) / 2) * 2 != val.charAt(14))
sex = '男';
else
sex = '女';
}
//18位身份证号码
if (18 == val.length) {
birthday = val.charAt(6) + val.charAt(7) + val.charAt(8) + val.charAt(9) + '-' + val.charAt(10) + val.charAt(11) + '-' + val.charAt(12) + val.charAt(13);
if (parseInt(val.charAt(16) / 2) * 2 != val.charAt(16))
sex = '男';
else
sex = '女';
}
return sex|birthday;
}

