微信小程序识别输入框输入的身份证号,对身份证号进行校验,获取获取出生日期、年龄、性别
时间: 2023-11-28 08:51:32 浏览: 170
可以使用正则表达式对输入的身份证号进行校验,然后根据身份证号的规则提取出生日期、年龄、性别等信息。
以下是一个示例代码:
```javascript
// 校验身份证号
function validateIdCard(idCard) {
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(idCard);
}
// 获取出生日期
function getBirthDate(idCard) {
var year, month, day;
if (idCard.length == 15) {
year = "19" + idCard.substring(6, 8);
month = idCard.substring(8, 10);
day = idCard.substring(10, 12);
} else if (idCard.length == 18) {
year = idCard.substring(6, 10);
month = idCard.substring(10, 12);
day = idCard.substring(12, 14);
}
return year + "-" + month + "-" + day;
}
// 获取年龄
function getAge(idCard) {
var birthDate = getBirthDate(idCard);
var age = new Date().getFullYear() - parseInt(birthDate.substring(0, 4));
if (new Date(birthDate).getMonth() > new Date().getMonth() ||
(new Date(birthDate).getMonth() == new Date().getMonth() && new Date(birthDate).getDate() > new Date().getDate())) {
age--;
}
return age;
}
// 获取性别
function getGender(idCard) {
var gender;
if (idCard.length == 15) {
gender = parseInt(idCard.charAt(14)) % 2 == 1 ? "男" : "女";
} else if (idCard.length == 18) {
gender = parseInt(idCard.charAt(16)) % 2 == 1 ? "男" : "女";
}
return gender;
}
// 在输入框输入时调用
function onInput(e) {
var idCard = e.detail.value;
if (validateIdCard(idCard)) {
var birthDate = getBirthDate(idCard);
var age = getAge(idCard);
var gender = getGender(idCard);
console.log("出生日期:" + birthDate + " 年龄:" + age + " 性别:" + gender);
// TODO: 更新页面显示出生日期、年龄、性别等信息
} else {
console.log("身份证号格式不正确");
// TODO: 更新页面提示身份证号格式不正确
}
}
```
在 `onInput` 函数中,首先校验输入的身份证号是否合法,如果合法则使用 `getBirthDate`、`getAge` 和 `getGender` 函数分别获取出生日期、年龄和性别,然后更新页面显示这些信息。如果身份证号格式不正确,则提示用户输入格式不正确。
阅读全文