尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

js身份证、手机号、邮箱校验

js身份证、手机号、邮箱校验 export default { // 身份证校验 checkIdCardFunc(rule: any, value?: any, callbackFunc?: any) { let code: any typeof value ! undefined typeof value ! function ? value : rule let callback: any typeof callbackFunc ! undefined ? callbackFunc : value function ? value : undefined let msg const city: any [11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91,] if (!code || code.length 0) { msg 证件号码不能为空 } else if (code.length ! 18) { msg 证件号码长度不为18位 } else if (!/(^\d{17}(\d|X|x)$)/.test(code)) { msg 证件号码格式错误 } else if (!city.includes([code.substr(0, 2)])) { msg 证件号码地址编码错误 } else if ( !/^(?:(?!0000)[0-9]{4}(?:(?:0[1-9]|1[0-2])(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])(?:29|30)|(?:0[13578]|1[02])31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)0229)$/.test( code.substr(6, 8) ) ) { msg 证件号码出生年月日错误 } else { // 18位身份证需要验证最后一位校验位 let codeArray code.split() // 加权因子 let factor [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 校验位 let parity [1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2] let sum 0 for (let i 0; i 17; i) { sum parseInt(codeArray[i]) * factor[i] } let last parity[sum % 11] if (last.toString() ! codeArray[17].toUpperCase()) { msg 证件号码校验位错误 } } if (msg) { if (callback) callback(new Error(msg)) else return false } else { if (callback) callback() else return true } }, /** * 邮箱验证 */ checkEmailFunc(rule: any, value?: any, callbackFunc?: any) { let code: any typeof value ! undefined typeof value ! function ? value : rule let callback: any typeof callbackFunc ! undefined ? callbackFunc : value function ? value : undefined const isEmail /^([a-zA-Z0-9][_/\_/\.]?)*[a-zA-Z0-9]([a-zA-Z0-9][_/\_/\.]?)*[a-zA-Z0-9]\.[a-zA-Z]{2,6}$/.test( code ) if (callback typeof callback function) { if (isEmail) { callback() } else { callback(new Error(邮箱格式错误)) } } else return isEmail }, /** * 手机号校验 */ checkPhoneFunc(rule: any, value?: any, callbackFunc?: any) { let code: any typeof value ! undefined typeof value ! function ? value : rule let callback: any typeof callbackFunc ! undefined ? callbackFunc : value function ? value : undefined const isPhone /^1[3456789]\d{9}$/.test(code) if (callback typeof callback function) { if (isPhone) { callback() } else { callback(new Error(手机号格式错误)) } } else return isPhone }, // 必输表单校验 checkFromRequiredFunc(dataRequired: { required?: boolean; message: string; trigger?: blur | change }) { const data { required: true, msg: , trigger: change } let { required, message, trigger } Object.assign(data, dataRequired) return { required: required, message: message, trigger: trigger } }, // 身份证表单校验(elemet-ui) checkFromIdCardFunc(trigger: blur | change change) { return { validator: this.checkIdCardFunc, trigger: trigger } }, // 邮箱表单校验 checkFromEmailFunc(trigger: blur | change change) { return { validator: this.checkEmailFunc, trigger: trigger } }, // 手机号表单校验 checkFromPhoneFunc(trigger: blur | change change) { return { validator: this.checkPhoneFunc, trigger: trigger } }, }
返回列表