js正则匹配手机号、身份证号、姓名
时间: 2023-06-20 07:09:33 浏览: 105
正则表达式可以用来匹配字符串中符合特定规则的部分,下面是匹配手机号、身份证号和姓名的正则表达式:
1. 匹配手机号:
```javascript
/^1[3-9]\d{9}$/
```
2. 匹配身份证号:
```javascript
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
```
3. 匹配姓名:
```javascript
/^[a-zA-Z\u4e00-\u9fa5·]{2,20}$/
```
其中,手机号的正则表达式要求以1开头,第二位为3-9中的任意一位数字,后面跟着9位数字;身份证号的正则表达式比较复杂,需要分别匹配15位、18位和18位且最后一位可能是X的情况;姓名的正则表达式要求包含至少两个字符,可以是英文字母或中文汉字,并且可以包含一个·作为分隔符。
相关问题
js正则表达式匹配身份证号码
可以使用以下正则表达式匹配身份证号码:
```javascript
/^\d{17}[\dXx]$/
```
其中,`\d` 表示数字,`{17}` 表示前面的数字必须出现 17 次,`[\dXx]` 表示最后一位可以是数字或者大写字母 X 或小写字母 x。
示例代码:
```javascript
const idCardRegex = /^\d{17}[\dXx]$/;
const idCardNumber = '11010119900307771X';
if (idCardRegex.test(idCardNumber)) {
console.log('身份证号码格式正确');
} else {
console.log('身份证号码格式错误');
}
```
正则匹配身份证号
可以使用以下正则表达式来匹配身份证号:
```python
import re
id_pattern = r'^[1-9]\d{5}(18|19|20)\d{2}(0\d|1[0-2])([0-2]\d|3[0-1])\d{3}[0-9Xx]$'
id_number = '110101199003074512'
match = re.match(id_pattern, id_number)
if match:
print('身份证号格式正确')
else:
print('身份证号格式错误')
```
这个正则表达式的意思是:
- `^` 表示匹配字符串的开头
- `[1-9]\d{5}` 匹配前6位地区代码,第一位不能为0,后面5位为数字
- `(18|19|20)\d{2}` 匹配出生年份,其中18、19、20是三个可选的前缀,后面必须是4个数字
- `(0\d|1[0-2])` 匹配出生月份,01~09是以0开头的两位数字,10~12是以1开头的两位数字
- `([0-2]\d|3[0-1])` 匹配出生日期,01~09是以0开头的两位数字,10~29是以1或2开头的两位数字,30~31是以3开头的两位数字
- `\d{3}` 匹配顺序码,顺序码是3位数字,从001到999依次递增,不能以0开头
- `[0-9Xx]` 匹配校验码,校验码是一个数字或字母X(大小写均可)
- `$` 表示匹配字符串的结尾
如果要匹配多个身份证号,可以使用`re.findall()`方法来获取所有匹配结果。