用正则表达式匹配出身份证号,并将出生年月日提取出来
时间: 2024-05-06 09:20:25 浏览: 132
身份证号由18位数字组成,其中前6位为省份代码,接下来8位为出生年月日,最后4位为顺序码和校验码。可以使用正则表达式匹配出身份证号,并使用捕获组提取出生年月日。
正则表达式:/^\d{6}(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})\d{4}$/
解释:
- ^:匹配字符串的开头
- \d{6}:匹配6位数字,即省份代码
- (?<year>\d{4}):捕获组,匹配4位数字,即出生年份
- (?<month>\d{2}):捕获组,匹配2位数字,即出生月份
- (?<day>\d{2}):捕获组,匹配2位数字,即出生日期
- \d{4}:匹配4位数字,即顺序码和校验码
- $:匹配字符串的结尾
示例代码:
```
const regex = /^\d{6}(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})\d{4}$/;
const idNumber = '110101199001011234';
const match = regex.exec(idNumber);
if (match) {
const year = match.groups.year;
const month = match.groups.month;
const day = match.groups.day;
console.log(`出生年月日:${year}-${month}-${day}`);
} else {
console.log('身份证号格式不正确');
}
```
输出:
```
出生年月日:1990-01-01
```
阅读全文