javascript验证出生日期
时间: 2023-11-05 15:05:37 浏览: 63
可以使用正则表达式来验证出生日期,以下是一个示例代码:
```javascript
function validateDateOfBirth(dateString) {
// 正则表达式匹配日期格式 yyyy-mm-dd
var regex = /^\d{4}-\d{2}-\d{2}$/;
if(!regex.test(dateString)) {
return false;
}
var parts = dateString.split("-");
var year = parseInt(parts[0], 10);
var month = parseInt(parts[1], 10);
var day = parseInt(parts[2], 10);
if(year < 1900 || year > new Date().getFullYear() || month == 0 || month > 12) {
return false;
}
var maxDay = new Date(year, month, 0).getDate();
if(day <= 0 || day > maxDay) {
return false;
}
return true;
}
```
该函数接受一个字符串参数,表示出生日期,返回一个布尔值,表示该日期是否合法。
相关问题
javascript-验证身份证号前17位为数字,并自动识别出生日期和性别
好的,以下是一个用 JavaScript 验证身份证号前 17 位为数字,并自动识别出生日期和性别的代码示例:
```
function checkID(id) {
if (!/^\d{17}(\d|x)$/i.test(id)) {
console.log('身份证号码格式错误');
return false;
}
let birthYear = id.substring(6, 10);
let birthMonth = id.substring(10, 12);
let birthDate = id.substring(12, 14);
let date = new Date(birthYear + '-' + birthMonth + '-' + birthDate);
if (date.getFullYear() != birthYear ||
date.getMonth() != birthMonth - 1 ||
date.getDate() != birthDate) {
console.log('身份证号码出生日期错误');
return false;
}
let sex = id.substring(16, 17) % 2 == 0 ? '女' : '男';
console.log('出生日期:' + birthYear + '年' + birthMonth + '月' + birthDate + '日');
console.log('性别:' + sex);
return true;
}
```
使用方法:
```
let id = '440982199001030419';
checkID(id);
```
输出结果:
```
出生日期:1990年01月03日
性别:男
```
JavaScript身份证号正则表达式
身份证号的正则表达式是这样的:
/^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9Xx]$/
其中,前面的^表示字符串的开头,后面的$表示字符串的结尾。中间的部分是身份证号的具体格式,可以简单解释如下:
- 前6位是地区码,由数字或大写字母组成,共6位;
- 接下来的4位表示出生年份,要求是有效年份,即1900年至今;
- 再接下来的2位表示出生月份,要求是01~12;
- 再接下来的2位表示出生日期,要求是01~31;
- 接下来的3位是顺序码,是该出生日期下的同年同月同日出生的人的编号,从001开始,到999结束;
- 最后一位是校验码,用于校验身份证号是否符合规定,可以是数字0~9或大写字母X。
使用这个正则表达式可以方便地验证一个字符串是否为有效的身份证号。