js证件等校验校验规则

最近在做一个项目,需要对很多种证件进行校验。

经过一番查找,发现在12406网站的js里有相关正则

https://kyfw.12306.cn/otn/personalJS/core/plugin/validate.js
// email 正则
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

// 无特殊字符email
 /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/

// url 正则

/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(
如果你觉得正则表达式校验身份证号码不准确,你可以使用第三方库进行身份证号码的校验,例如`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`库可以更准确地校验身份证号码的合法性,并且可以获得更多的身份证信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值