/**
- 选择的日期不能超出当前日期
- @param {*} rule {message}
- @param {*} value
- @param {*} callback
*/
export function currentDate (rule, value, callback) {
if (value && new Date(value) > new Date()) {
return callback(new Error(rule.message || ‘选择的日期不能超出当前日期’))
}
callback()
}
/**
- 输入字符长度并可限制范围大小
- @param {*} rule {min, max, message}
- @param {*} value
- @param {*} callback
*/
export function maxLength (rule, value, callback) {
if (!String(value)) {
// 不做任何处理
} else if (rule.min !== undefined && String(value).length < rule.min) {
return callback(new Error(rule.message ||输入的最小长度不能少于${rule.min}个字符
))
} else if (rule.max !== undefined && String(value).length > rule.max) {
return callback(new Error(rule.message ||输入的最大长度不能超过${rule.max}个字符
))
}
callback()
}
/**
- 输入数字并可限制范围大小
- @param {*} rule {min, max, message}
- @param {*} value
- @param {*} callback
*/
export function numberSize (rule, value, callback) {
if (isNaN(value)) {
return callback(new Error(rule.message || ‘请输入数字’))
} else if (rule.min !== undefined && +value < rule.min) {
return callback(new Error(rule.message || ‘输入的数字超出限制范围’))
} else if (rule.max !== undefined && +value > rule.max) {
return callback(new Error(rule.message || ‘输入的数字超出限制范围’))
}
callback()
}
/**
- 手机号码
- @param {*} rule {message}
- @param {*} value
- @param {*} callback
*/
export function phoneNumber (rule, value, callback) {
if (value && !/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/.test(value)) {
return callback(new Error(rule.message || ‘请输入正确的手机号码’))
}
callback()
}
/**
- 座机电话号码 例:023-12345678
- @param {*} rule {message}
- @param {*} value
- @param {*} callback
*/
export function telNumber (rule, value, callback) {
if (value && !/^0\d{2,3}-\d{7,8}$/.test(value)) {
return callback(new Error(rule.message || ‘请输入正确的座机电话,如:023-12345678’))
}
callback()
}
/**
- 电子邮箱
- @param {*} rule {message}
- @param {*} value
- @param {*} callback
/
export function emailValidator (rule, value, callback) {
if (value && !/1+([-_.][A-Za-z\d]+)@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(value)) {
return callback(new Error(rule.message || ‘请输入正确的电子邮箱’))
}
callback()
}
/**
- 正则验证器
- @param {*} rule {pattern, message}
- @param {*} value
- @param {*} callback
*/
export function patternValidator (rule, value, callback) {
if (value && rule.pattern) {
if (!(new RegExp(rule.pattern).test(value))) {
return callback(new Error(rule.message || ‘输入内容不合法’))
}
}
callback()
}
A-Za-z\d ↩︎