Files
foton-laws-system-front/src/common/verify/index.js
T

513 lines
16 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @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/]+$/
let testval1 = /[.-]+/
if (value && !value.match(testval) && !value.match(testval1)) {
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()
}
},
// 验证输入数字
testNumberCode (rule, value, callback) {
let reg = /^[0-9]*$/
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()
})
}
},
}