12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- // 效验身份证号码
- export const isValidIdCard18 = (idCard) => {
- // 身份证号码正则表达式(18位)
- var regex = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([012]\d)|3[01])\d{3}(\d|X|x)$/
- // 校验长度,类型
- if (!regex.test(idCard)) {
- return false
- }
- // 提取出生年月日,并验证是否为有效日期
- var year = idCard.substring(6, 10)
- var month = idCard.substring(10, 12)
- var day = idCard.substring(12, 14)
- var date = new Date(year, month - 1, day)
- if (date.getFullYear() !== parseInt(year, 10) ||
- date.getMonth() !== parseInt(month, 10) - 1 ||
- date.getDate() !== parseInt(day, 10)) {
- return false
- }
- // 校验码部分
- var idCardBase = idCard.substring(0, 17)
- var weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
- var checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
- var sum = 0
- for (var i = 0; i < idCardBase.length; i++) {
- sum += idCardBase[i] * weights[i]
- }
- var index = sum % 11
- var last = checkCodes[index]
- return last.toUpperCase() === idCard.substring(17).toUpperCase()
- }
- // 身份证号码转换*号
- export const maskNumber = (numberStr) => {
- if (numberStr.length < 2) {
- return numberStr
- }
-
- // 提取首尾字符
- const firstChar = numberStr[0]
- const lastChar = numberStr[numberStr.length - 1]
- const middleLength = numberStr.length - 2
- const middleStars = '*'.repeat(middleLength)
-
- return firstChar + middleStars + lastChar
- }
- // 效验手机号
- export const phoneReg = /^1[3456789]\d{9}$/
- export const checkPhone = (phone) => {
- return phoneReg.test(phone)
- }
- // 效验邮箱
- const emailReg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
- export const checkEmail = (email) => {
- return emailReg.test(email)
- }
- // 企业邮箱效验
- const companyEmailReg = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
- export const checkCompanyEmail = (email) => {
- return companyEmailReg.test(email)
- }
- // 效验社会统一认证编码
- const USCIReg = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;
- export const checkUSCI = (code) => {
- return USCIReg.test(code)
- }
- // 效验银行卡号
- const BankNoReg = /^\d{16,19}$/;
- export const checkBankNo = (code) => {
- return BankNoReg.test(code)
- }
- // 效验开户银行名称
- const BankNameReg = /^[A-Za-z\u4e00-\u9fa5]+$/;
- export const checkBankName = (value) => {
- return BankNameReg.test(value)
- }
- // 效验有效位置地址
- const AddressReg = /[\u4e00-\u9fa5]/g;
- export const checkAddress = (value) => {
- const bool = value ? (value.match(AddressReg)?.length || 0) >= 12 : false // 校验12个中文字符
- return bool
- }
|