js身份证号校验正则
时间: 2024-06-07 16:04:36 浏览: 217
JS身份证号校验正则表达式如下:
```
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
```
这个正则表达式可以匹配15位或18位身份证号码,其中第18位可以为数字或字母X(大小写均可)。
具体解释如下:
- ^ 匹配输入字符串的开始位置
- \d 匹配数字
- {15} 匹配前面的数字15次
- | 或的意思,匹配左边或右边的表达式
- () 将匹配的内容分组
- $ 匹配输入字符串的结束位置
- (\d|X|x) 匹配数字或字母X(大小写均可)
- {17} 匹配前面的数字17次
相关问题
vue身份证校验正则
在Vue项目中,身份证号码的校验可以使用正则表达式来实现。下面是一个示例代码,其中包含了一个正则表达式,用于校验身份证号码的合法性:
```javascript
data() {
return {
rules: {
IDCard: [
{
required: true,
pattern: /^(([1-9][0-9]{5}(19|20)[0-9]{2}((0[1-9])|(1[0-2]))([0-2][1-9]|10|20|30|31)[0-9]{3}([0-9]|X|x))|([1-9][0-9]{5}[0-9]{2}((0[1-9])|(1[0-2]))([0-2][1-9]|10|20|30|31)[0-9]{3}))$/,
message: "请输入正确的身份证号",
trigger: "blur"
}
],
}
}
}
```
其中,正则表达式的含义是:身份证号码由18位数字或17位数字加上一个字母X组成,其中前6位表示出生地区,接下来8位表示出生日期,再接下来3位表示出生顺序,最后一位是校验码。这个正则表达式可以校验身份证号码的格式是否正确,但并不能保证身份证号码的真实性。
上面的validateRules 如何加 方法进行校验 身份证号? 正则规则表达式校验太简单了不准确
如果你觉得正则表达式校验身份证号码不准确,你可以使用第三方库进行身份证号码的校验,例如`idcard-verify`。这个库可以校验身份证号码的合法性,并且可以根据身份证号码获取性别、出生日期等信息。
首先,在Vue组件中安装`idcard-verify`库:
```bash
npm install idcard-verify --save
```
然后,在Vue组件中引入该库,并在`validateRules`中使用自定义校验规则:
```javascript
import { verify } from 'idcard-verify'
export default {
data() {
return {
validateRules: {
certno: [
{ required: true, message: '证件号码不能为空' },
{
validator: (rule, value, callback) => {
const result = verify(value)
if (result.status === 0) {
callback()
} else {
callback(new Error(result.msg))
}
},
message: '请输入正确的身份证号码'
}
],
name: [
{ required: true, message: '姓名不可为空' }
],
empName: [
{ required: true, message: '单位名称不可为空' }
],
empCode: [
{ required: true, message: '统一信用代码不能为空' }
],
reason: [
{ required: true, message: '失信原因不能为空' }
]
}
}
}
}
```
在上面的代码中,我们首先从`idcard-verify`库中引入`verify`方法。然后,在`validateRules`中的`certno`数组中,我们使用自定义校验规则,其中`validator`属性是一个函数,用于自定义校验规则。在该函数中,我们调用`verify`方法,校验传入的身份证号码是否合法。如果返回的`status`属性为0,说明身份证号码合法,通过调用`callback`函数即可;否则,通过`callback`函数返回一个`Error`对象,提示用户输入正确的身份证号码。最后,将这个新对象的`message`属性设置为相应的提示信息即可。
使用`idcard-verify`库可以更准确地校验身份证号码的合法性,并且可以获得更多的身份证信息。
阅读全文