Skip to content

Instantly share code, notes, and snippets.

@yeyuguo
Last active April 2, 2022 09:38
Show Gist options
  • Save yeyuguo/6bc3c0122e1ded9b23286357acafac4b to your computer and use it in GitHub Desktop.
Save yeyuguo/6bc3c0122e1ded9b23286357acafac4b to your computer and use it in GitHub Desktop.
一些校验规则
/** 校验表格 */
export function validForm(formObj, success, error) {
if (!formObj) return
formObj.validate(valid => {
console.log('valid: ', valid);
if (valid) {
success && success()
} else {
error && error(valid)
}
})
}
/** 校验数量不能超过50, 单个词语不能超过20长度 */
export function validLength(value, {
maxWords = 20,
maxLengthWord = 500
} = {}) {
// const maxW = 4, maxL = 3
let valueArray = inpuTransformFlag2Ary(value)
// 关键词不能超过100个
if (valueArray.length > maxWords) {
return false
}
// 长度不能超过 20 , 特殊做去空不计算
let getOverlength = valueArray.filter(item => {
return item.length > maxLengthWord
})
if (getOverlength.length) {
return false
}
return true
}
// 替换规则
export function inpuTransformFlag2Ary(value, reg = /(\r\n|\n|,|,)/g, target = ',') {
//IE9、FF、chrome = \r\n; IE7-8=\n
return value.replace(reg, target).split(target).filter(item => item)
}
export function isvalidUsername(str) {
const valid_map = ['admin', 'editor']
return valid_map.indexOf(str.trim()) >= 0
}
/* 合法uri*/
export function validateURL(rule, value, callback) {
const urlregex = /(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/
if (value !== '') {
return urlregex.test(value) ?
callback() :
callback(new Error('请输入正确的网站地址'))
} else {
callback(new Error('请输入网站地址'))
}
}
/* 小写字母*/
export function validateLowerCase(str) {
const reg = /^[a-z]+$/
return reg.test(str)
}
/* 大写字母*/
export function validateUpperCase(str) {
const reg = /^[A-Z]+$/
return reg.test(str)
}
/* 大小写字母*/
export function validateAlphabets(str) {
const reg = /^[A-Za-z]+$/
return reg.test(str)
}
/* 校验手机号*/
export function validatePhone(rule, value, callback) {
if (value && String(value).indexOf('*') !== -1) return callback()
const reg = /^1(3|4|5|6|7|8|9)[0-9]{9}$/
return reg.test(value) ?
callback() :
callback(new Error('请输入正确的手机号'))
}
/* 校验验证码*/
export function validatePhoneCode(rule, value, callback) {
if (value && value.indexOf('*') !== -1) return callback()
const reg = /^[0-9]{6}$/
return reg.test(value) ?
callback() :
callback(new Error('请输入正确的验证码'))
}
/* 校验税号*/
export function validateDutyParagraph(rule, value, callback) {
const reg = /^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/
return reg.test(value) ?
callback() :
callback(new Error('请输入15,18或20位税务登记号'))
}
/* 校验身份证号*/
export function validateOwnerId(rule, value, callback) {
if (value && value.indexOf('*') !== -1) return callback()
const reg = /^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/
return reg.test(value) ?
callback() :
callback(new Error('请输入正确的身份证号'))
}
/* 上传图片*/
export function validateImg(rule, value, callback) {
if (value && value.length > 0 && value[0].url) {
return callback()
} else {
return callback(new Error(rule.message || '请上传传图片'))
}
}
// 小于等于n位数字数字或者字母
export function validateWord(rule, value, callback) {
const reg = /^[a-zA-Z0-9]{0,15}$/
return reg.test(value) ? callback() : callback(new Error(rule.message || '最多15位数字或者字母'))
}
export function checkStart(str) {
var myReg = /\*/
if (myReg.test(str)) {
return true
}
return false
}
// 特殊字符
export function validateBite(rule, value, callback) {
const reg = /^[*_\u4e00-\u9fa5_a-zA-Z0-9]+$/
if (value.length > 39) {
return callback(new Error(rule.message || '地址信息长度不能大于39个字符!'))
}
if (reg.test(value)) {
return callback()
} else {
return callback(new Error(rule.message || '仅支持中英文,不区分大小写,数字,不支持空格、特殊字符等。'))
}
}
/** 中英文字符支持传入参数 */
export function validateCount({min, max}) {
return (rule, value, callback) => {
const reg = /^[*_\u4e00-\u9fa5_a-zA-Z0-9]+$/
if(max && value.length > max) {
return callback(new Error(rule.message || `长度不能大于${max}个字符!`))
}else if(min && value.length < min) {
return callback(new Error(rule.message || `长度不能大于${min}个字符!`))
}
if (reg.test(value)) {
return callback()
} else {
return callback(new Error(rule.message || '仅支持中英文,不区分大小写,数字,不支持空格、特殊字符等。'))
}
}
}
/* 上传图片*/
export function validateProtocol(rule, value, callback) {
if (value) {
return callback()
} else {
return callback(new Error(rule.message || '您还未同意xxxx协议!'))
}
}
/** 验证数组长度 */
export function validArrayLength(rule, value, callback) {
if(value && value.length) {
return callback()
}else{
return callback(new Error(rule.message))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment