element校验
身份证
JavaScript
// 检查身份证校验位
export const isChinaIDCard = (str) => {
var chinaIDCardRegExp =
/^[1-9]\d{5}(19|20)\d{2}(0\d|1[0-2])([012]\d|3[01])\d{3}[0-9X]$/
if (!chinaIDCardRegExp.test(str)) {
return false
}
var i,
lastDigit,
total = 0
var numbers = str.split('')
for (i = 0; i < 17; i++) {
total += parseInt(numbers[i], 10) * (Math.pow(2, 17 - i) % 11)
}
lastDigit = (12 - (total % 11)) % 11
if (lastDigit === 10) {
lastDigit = 'X'
}
return lastDigit.toString() === numbers[17].toUpperCase()
}
// ele-form自定义校验函数
export function checkIdentity(rule, value, callback) {
let reg18 =
/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
let reg15 =
/^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
if (value == '' || value == undefined || value == null) {
callback()
} else if ((reg18.test(value) && isChinaIDCard(value)) || reg15.test(value)) {
callback()
} else {
callback(new Error('请输入正确身份证号'))
}
}
手机号
JavaScript
// ele-form自定义校验函数
export function checkPhone(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback()
} else if (
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
value
)
) {
callback()
} else {
callback(new Error('请输入正确手机号格式'))
}
}
手机号数组
JavaScript
// ele-form自定义校验函数
export function checkPhoneList(rule, value, callback) {
if (
!value?.length ||
(value.length == 1 &&
(value[0] == '' || value[0] == null || value[0] == undefined))
) {
callback()
} else if (
value.every((v) => {
return /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
v
)
})
) {
callback()
} else {
callback(new Error('请输入正确手机号格式'))
}
}
座机号
JavaScript
// ele-form自定义校验函数
export function checkPhoneList(rule, value, callback) {
if (
!value?.length ||
(value.length == 1 &&
(value[0] == '' || value[0] == null || value[0] == undefined))
) {
callback()
} else if (
value.every((v) => {
return /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
v
)
})
) {
callback()
} else {
callback(new Error('请输入正确手机号格式'))
}
}
金额
JavaScript
// ele-form自定义校验函数
export function checkMoney(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback()
} else if (/^\d+(\.\d{1,2})?$/.test(value)) {
callback()
} else {
callback(new Error('请输入正确格式'))
}
}
利率
JavaScript
// ele-form自定义校验函数
export function checkRate(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback()
} else if (/^\d+(\.\d{1,3})?$/.test(value)) {
callback()
} else {
callback(new Error('请输入正确格式'))
}
}
邮箱
JavaScript
// ele-form自定义校验函数
export function checkEmail(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback()
} else if (
/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(
value
)
) {
callback()
} else {
callback(new Error('请输入电子邮箱正确格式'))
}
}