检验出生日期正则表达式
时间: 2023-11-24 07:52:38 浏览: 147
以下是检验出生日期正则表达式的示例代码:
```javascript
// 定义出生日期正则表达式
var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/;
// 定义检验函数
var checkBirth = function (val) {
if (pattern.test(val)) {
console.log('出生日期格式正确');
} else {
console.log('出生日期格式错误');
}
}
// 测试
checkBirth('1990-01-01'); // 输出:出生日期格式正确
checkBirth('2022-02-29'); // 输出:出生日期格式错误
```
该示例代码中,首先定义了出生日期的正则表达式,然后定义了一个检验函数`checkBirth`,该函数接受一个参数`val`,用于传入待检验的出生日期字符串。在函数内部,使用正则表达式的`test`方法对传入的字符串进行检验,如果符合出生日期的格式,则输出“出生日期格式正确”,否则输出“出生日期格式错误”。最后,通过调用`checkBirth`函数并传入不同的参数进行测试。
--相关问题--:
1. 如何使用正则表达式检验手机号码格式?
2. 如何使用正则表达式检验邮箱地址格式?
3. 如何使用正则表达式匹配
相关问题
正则表达式检验身份证:[1-9]\\d{5}(19\\d{2}|20([01]\\d|2[0-4]))(0[1-9]|[12]\\d|3[01])(\\d{3}|\\d{2}(?i)x) 哪里不对
这个正则表达式是用来检查中国大陆身份证号码的格式,其基本结构是正确的,但有几个需要注意的地方:
1. `1-9` 可能会匹配到非数字字符,应改为 `[1-9]` 要求第一个数字是非零且不超过9。
2. `(19\\d{2}|20([01]\\d|2[0-4]))` 这部分用于匹配年份,对于出生日期来说,应该是从1980年至2024年之间。可以修改为更精确的范围:`(19[6-9]{2}|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024)`。
3. 对于月份,你提到的 `(0[1-9]|[12]\\d|3[01])` 中的月份是按01-12表示的,应该去掉0前面的零,即 `([1-9]|1[0-2])`。
4. 对于校验码,`(\d{3}|...)` 如果是指15位身份证的最后一位是X的话,应处理大小写,添加一个`(?i)` 使其对"X"不敏感,即 `(?:\d{3}|\d{x})(?i)`。
所以修正后的正则表达式可能会是这样:
```regex
^(?!00)[1-9]\d{5}(19[6-9]{2}|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020|2021|2022|2023|2024)(0[1-9]|1[0-2])([1-9]|[12][0-9]|3[01])(?:\d{3}|\d{x})(?i)$
```
阅读全文