在JavaScript中,可以通过正则表达式来匹配身份证号码中的出生日期部分,并将其提取出来显示在页面上。中国的身份证号码共有18位,其中第7位到第14位表示出生年月日。
以下是一个简单的JavaScript示例,用于实现当用户在输入框中输入身份证号码时,自动显示对应的生日信息:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>身份证自动显示生日</title>
<script>
function showBirthday() {
var idNumber = document.getElementById('idNumber').value;
var birthdayMatch = idNumber.match(/(\d{6})(\d{8})/);
if (birthdayMatch) {
var birthday = birthdayMatch[2];
document.getElementById('birthday').value = birthday.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3');
} else {
document.getElementById('birthday').value = '';
}
}
</script>
</head>
<body>
<label for="idNumber">身份证号码:</label>
<input type="text" id="idNumber" oninput="showBirthday()" placeholder="请输入身份证号码">
<br><br>
<label for="birthday">生日:</label>
<input type="text" id="birthday" placeholder="生日将自动显示" readonly>
</body>
</html>对于身份证号码格式的校验,可以增加如下的正则表达式校验:
function isValidIdNumber(idNumber) {
var reg = /^\d{15}|\d{18}$/;
return reg.test(idNumber);
}并在showBirthday函数中调用此校验函数:
function showBirthday() {
var idNumber = document.getElementById('idNumber').value;
if (isValidIdNumber(idNumber)) {
var birthdayMatch = idNumber.match(/(\d{6})(\d{8})/);
if (birthdayMatch) {
var birthday = birthdayMatch[2];
document.getElementById('birthday').value = birthday.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3');
}
} else {
document.getElementById('birthday').value = '';
}
}这样可以在一定程度上保证输入的身份证号码格式正确,从而正确提取生日信息。
没有搜到相关的沙龙