在业务开发过程中,如果遇到需要用户填写身份证号码的情况,可以预先根据身份证号码的校验标准,在本地进行身份证号码的预检验。
避免因为用户输入错误而发送不正确的身份证号码造成相关的资源浪费。
代码如下:
JavaScript
const checkId = (idNum: string) => {
// 基本正则校验
const regExp = /^([1-68][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
if (!regExp.test(idNum)) return false
// 校验码校验
const checkNumber = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
let checkResultTmp = 0
const idArr = idNum.split('')
checkNumber.forEach((n, i) => {
checkResultTmp += n * (Number(idArr[i]) || 0)
})
const checkCode = ["1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2"][checkResultTmp % 11]
return checkCode === idArr[17].toLowerCase()
}