code init
This commit is contained in:
@@ -0,0 +1,502 @@
|
||||
/**
|
||||
* @description: 通用正则验证方法
|
||||
* @author: chenxiaoxi
|
||||
* @date: 2018-09-04 11:29:05
|
||||
*/
|
||||
export const specialCharacterReg = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} %【】\\s‘;:”“'。,、?]")
|
||||
export const asteriskReg = new RegExp('\\*')
|
||||
export default {
|
||||
// 验证Email
|
||||
checkEmails (rule, value, callback) {
|
||||
if (value === null || value === '') {
|
||||
return callback(new Error('不能为空'))
|
||||
}
|
||||
let pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
|
||||
if (!pattern.test(value)) {
|
||||
return callback(new Error('邮箱格式不正确'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 验证字母、数字、.、-的正则
|
||||
* 应用于标准编号、条款号等
|
||||
* */
|
||||
validateStandardItem (rule, value, callback) {
|
||||
// return callback()
|
||||
let testval = /^[A-Za-z0-9/ ,.-\\-()()]+$/
|
||||
if (value && !value.match(testval)) {
|
||||
return callback(new Error('只能为(字母、数字、.、-)'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 验证字母、数字、.、-的正则且不能重复
|
||||
* 应用于标准编号、条款号等
|
||||
* */
|
||||
validateStandardItemNoRepeat(rule, value, callback) {
|
||||
// let testval = /^[A-Za-z0-9/ ,.-\\-()]+$/
|
||||
// if (value && !value.match(testval)) {
|
||||
// return callback(new Error('只能为(字母、数字、.、-)'))
|
||||
// } else
|
||||
if (value.indexOf(',') > -1) {
|
||||
const val = value.split(',')
|
||||
const valList = []
|
||||
const repeatList = []
|
||||
let flag = true
|
||||
val.map(item => {
|
||||
if (!valList.includes(item)) {
|
||||
valList.push(item)
|
||||
} else {
|
||||
repeatList.push(item)
|
||||
flag = false
|
||||
}
|
||||
})
|
||||
if (flag) {
|
||||
callback()
|
||||
} else {
|
||||
return callback(new Error(`数据 ${repeatList.join(',')} 重复,请重新输入`))
|
||||
}
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
|
||||
// 验证动态内容
|
||||
validateContent (rule, value, callback) {
|
||||
if (value === '') {
|
||||
return callback(new Error('动态内容不能为空且不能全为空格'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
// 验证手机号码
|
||||
checkMobilePhone (rule, value, callback) {
|
||||
if (!value) {
|
||||
// return callback(new Error('手机号码不能为空'))
|
||||
return callback()
|
||||
}
|
||||
let tel = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/
|
||||
if (!value.match(tel)) {
|
||||
return callback(new Error('手机格式不正确'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
// 验证手机号码2
|
||||
checkMobilePhone2 (rule, value, callback) {
|
||||
let tel = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else if (!value.match(tel)) {
|
||||
return callback(new Error('手机格式不正确'))
|
||||
}
|
||||
callback()
|
||||
},
|
||||
// 验证办公电话
|
||||
checkOfficePhone (rule, value, callback) {
|
||||
let tel2 = /^[0-9\-\\(\\)()x]+$/
|
||||
if (value === null || value === '') {
|
||||
callback()
|
||||
} else if (!tel2.test(value)) {
|
||||
return callback(new Error('办公电话格式不正确'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
// 验证个人中心传真
|
||||
checkFaxAddress (rule, value, callback) {
|
||||
let tel = /^\d{1,100}$/
|
||||
if (value === null || value === '') {
|
||||
callback()
|
||||
} else if (!value.match(tel)) {
|
||||
return callback(new Error('输入上限为100,且必须为数字'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
checkOnlyNumber (rule, value, callback) {
|
||||
let tel = /^\d{1,2}$/
|
||||
if (value === null || value === '') {
|
||||
callback()
|
||||
} else if (!value.match(tel)) {
|
||||
return callback(new Error('仅能输入不大于两位的数字'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
// 验证特殊字符(非必填)
|
||||
checkSpecialCharacter (rule, value, callback) {
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} %【】\\s‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证url
|
||||
checkUrl (rule, value, callback) {
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else {
|
||||
let pattern = new RegExp(/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/i) // eslint-disable-line
|
||||
if (!pattern.test(value)) {
|
||||
return callback(new Error('链接网址格式错误'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
callback()
|
||||
},
|
||||
// 验证特殊字符无长度限制(必填)
|
||||
checkSpecialCharacter2 (rule, value, callback) {
|
||||
let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]<>/?~!@#¥……&*()——|{} %【】\\s‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 车型项目库 项目名称校验使用 提示词不同 能输入 中英文 数字 横线(-) 下划线(_) 括号
|
||||
checkSpecialCharacterProduct (rule, value, callback) {
|
||||
let pattern = new RegExp("[`~!@#$^&*=|{}':;',\\[\\]<>/?~!@#¥……&*|{} %【】\\s‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('能输入中英文、数字、横线(-)、下划线(_)、括号'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 验证标准法规属性管理字符长度与非空
|
||||
checkCharacter (rule, value, callback) {
|
||||
if (value === '') {
|
||||
return callback(new Error('选项不能为空'))
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} %【】\\s‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证标准法规属性管理字符长度与非空
|
||||
checkCharacter2 (rule, value, callback) {
|
||||
if (value === '') {
|
||||
return callback(new Error('描述不能为空'))
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} % \\s【】‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证动态信息管理动态标题
|
||||
checkInformation (rule, value, callback) {
|
||||
if (value === '') {
|
||||
return callback(new Error('动态标题不能为空'))
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*=|{}':;',\\[\\].<>/?~!@#¥……&*——|{}%【】‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证动态信息管理动态标题
|
||||
checkInformationTestItemStand (rule, value, callback) {
|
||||
if (value === '') {
|
||||
return callback(new Error('动态标题不能为空'))
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*=|{}':;',\\[\\]<>?~!@#¥……&*——|{}%【】‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证账号
|
||||
checkUsername (nullTips, errTips) {
|
||||
return (rule, value, callback) => {
|
||||
if (!value) {
|
||||
return callback(new Error(nullTips || '不能为空'))
|
||||
}
|
||||
let pattern = /\w{3,15}$/
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === false) {
|
||||
return callback(new Error(errTips || '只能由3-15位的数字、字母组成'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
},
|
||||
validateStandardNum (rule, value, callback) {
|
||||
let testval = /^\d+(\.\d+)*$/
|
||||
let pattern1 = /\w{1,100}$/
|
||||
let pattern2 = /\w{0,100}$/ // 验证代替标准号,和被代替标准号,因为非必填项,所以长度可能是0
|
||||
if (rule.field === 'standNumber') {
|
||||
if (!value) {
|
||||
return callback(new Error('标准编号不能为空'))
|
||||
} else if (!value.match(testval)) {
|
||||
return callback(new Error('1到100字符数字,支持“数字.数字”'))
|
||||
} else if (!value.match(pattern1) && rule.field === 'standNumber') {
|
||||
return callback(new Error('1到100字符数字,支持“数字.数字”'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
} else {
|
||||
if (value) {
|
||||
if (!value.match(testval)) {
|
||||
return callback(new Error('100以内字符,支持“数字.数字”'))
|
||||
} else if (!value.match(pattern2) && rule.field !== 'standNumber') {
|
||||
return callback(new Error('100以内字符,支持“数字.数字”'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
},
|
||||
// 验证排序序号 0-100
|
||||
validateStandarOrder (rule, value, callback) {
|
||||
if (!value) {
|
||||
return callback(new Error('排序序号不能为空'))
|
||||
}
|
||||
let pattern = /^\+?[0-9]*$/
|
||||
setTimeout(() => {
|
||||
if (!pattern.test(value)) {
|
||||
return callback(new Error('请输入100以内的非负整数'))
|
||||
} else if (value > 100) {
|
||||
return callback(new Error('请输入100以内的非负整数'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 验证不为0的正整数正则
|
||||
* */
|
||||
validStandNumInCompile2 (rule, value, callback) {
|
||||
// let pattern = /^\d+$/
|
||||
let pattern = /^[1-9]\d*$/
|
||||
setTimeout(() => {
|
||||
if (!pattern.test(value)) {
|
||||
return callback(new Error('仅能输入正整数'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
},
|
||||
validStandNumInCompile3 (rule, value, callback) {
|
||||
let pattern = /^\d+$/
|
||||
setTimeout(() => {
|
||||
if (!pattern.test(value)) {
|
||||
return callback(new Error('仅能输入正整数'))
|
||||
} else if (value > 4000) {
|
||||
return callback(new Error('最大长度不能超过4000'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
},
|
||||
valiateEnName (rule, value, callback) {
|
||||
let reg = /[\u4E00-\u9FA5\uF900-\uFA2D'"‘’”“]/
|
||||
if (value === '' || value == null) {
|
||||
callback()
|
||||
} else {
|
||||
if (value.match(reg)) {
|
||||
return callback(new Error('英文名称不能输入中文及引号'))
|
||||
} else {
|
||||
/* let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} %【】‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}) */
|
||||
callback()
|
||||
}
|
||||
}
|
||||
},
|
||||
remakeY (rule, value, callback) {
|
||||
let reg = /[‘’”“'"]/g
|
||||
if (value === '' || value == null) {
|
||||
callback()
|
||||
} else {
|
||||
if (value.match(reg)) {
|
||||
return callback(new Error('不能输入引号'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
},
|
||||
remakeBD (rule, value, callback) {
|
||||
let reg = /[‘’”“']/g
|
||||
if (value === '' || value == null) {
|
||||
callback()
|
||||
} else {
|
||||
if (value.match(reg)) {
|
||||
return callback(new Error('不能输入引号'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
},
|
||||
valiateName (rule, value, callback) {
|
||||
let reg = /[^\u4E00-\u9FA5‘’”“'"]/g
|
||||
if (value === '' || value == null) {
|
||||
callback()
|
||||
} else {
|
||||
if (value.match(reg)) {
|
||||
return callback(new Error('中文名称不能输入英文及引号'))
|
||||
} else {
|
||||
/* let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} %【】‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}) */
|
||||
callback()
|
||||
}
|
||||
}
|
||||
},
|
||||
// 验证年份
|
||||
valiateStandYear (rule, value, callback) {
|
||||
let reg = /^\d{4}$/
|
||||
if (value.match(reg)) {
|
||||
callback()
|
||||
} else {
|
||||
return callback(new Error('输入正确的年份'))
|
||||
}
|
||||
},
|
||||
// 验证特殊字符,但不包括半角分号(非必填) gaoyan
|
||||
checkSpecialCharacterOftags (rule, value, callback) {
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*=|{}':',\\[\\].<>/?~!@#¥……&*——|{}%【】‘:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
// syt 系统账户验证
|
||||
checkUsername2 (rule, value, callback) {
|
||||
let reg = /^(?=.*[a-zA-Z])/
|
||||
if (value === '' || value == null) {
|
||||
return callback(new Error('系统账号不能为空'))
|
||||
} else {
|
||||
if (!value.match(reg)) {
|
||||
return callback(new Error('至少包含1个字母'))
|
||||
} else {
|
||||
let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{} %【】‘;:”“'。,、?]") // eslint-disable-line
|
||||
setTimeout(() => {
|
||||
if (pattern.test(value) === true) {
|
||||
return callback(new Error('不能包含特殊字符'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
// 验证企业标准台账标准编号,仅能输入英文,数字,点,/,-
|
||||
validStandNumInCompile (rule, value, callback) {
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else {
|
||||
let pattern = /^[a-zA-Z0-9//]*$/
|
||||
setTimeout(() => {
|
||||
if (!value.match(pattern)) {
|
||||
return callback(new Error('仅能输入英文,数字,/'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
valiCategory (rule, value, callback) {
|
||||
if (value != null && value.length > 20) {
|
||||
return callback(new Error('多选择项不能超过20个'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
// 验证输入数字和英文
|
||||
testItemCode (rule, value, callback) {
|
||||
let reg = /^[0-9a-zA-Z]+$/
|
||||
if (value !== '' && !value.match(reg)) {
|
||||
return callback(new Error('只能输入字母、数字'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
validUrl (rule, value, callback) {
|
||||
let reg = /(^((https|ftp|http|file):\/\/)|www\.)*([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/gm
|
||||
if (!value.match(reg)) {
|
||||
return callback(new Error('请输入正确的网址'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
valiApply (rule, value, callback) {
|
||||
if (value != null && value.length > 100) {
|
||||
return callback(new Error('多选择项不能超过100个'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
validFieldOracle (rule, value, callback) {
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else {
|
||||
let pattern = /^[A-Z_]+$/
|
||||
setTimeout(() => {
|
||||
if (!value.match(pattern)) {
|
||||
return callback(new Error('仅能包含大写英文,下划线'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证编码
|
||||
validateCode (rule, value, callback) {
|
||||
if (value === '') {
|
||||
callback()
|
||||
} else {
|
||||
let pattern = /^[A-Z0-9]*$/
|
||||
setTimeout(() => {
|
||||
if (!value.match(pattern)) {
|
||||
return callback(new Error('仅能包含大写英文,数字'))
|
||||
}
|
||||
callback()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user