import Vue from 'vue'
export default {
//校验不通过弹出的提示信息
validateInfo(){
Vue.prototype.$message({
message: '您还有数据未填写完整或填写错误!',
type: 'error',
duration: 2000
});
},
//IP地址校验
IpAddressValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入IP地址'));
} else if(!((/((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/g.test(value)))) {
// } else if(!((/^1[3|5|7|8][0-9]\d{8}$/.test(value)))) {
callback(new Error('请输入正确的IP地址'));
} else {
callback();
}
},
//联系电话校验
phoneNumValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入联系号码'));
} else if(!((/^1[0-9]{10}$/.test(value)))) {
// } else if(!((/^1[3|5|7|8][0-9]\d{8}$/.test(value)))) {
callback(new Error('请输入正确的11位手机号码'));
} else {
callback();
}
},
//上传文件校验
fileValidator(rule, value, callback){
if(!value) {
callback(new Error('请选择文件'));
} else if(value.length < 1) {
callback(new Error('请选择文件'));
} else {
callback();
}
},
//中文姓名校验
nameValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入中文姓名'));
} else if(!(/^([\u4e00-\u9fa5]){2,10}$/.test(value))) {
callback(new Error('请输入正确的姓名'));
} else {
callback();
}
},
//银行号码校验
bankNumValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入银行账号'));
} else if(!(/^([1-9]{1})(\d{14}|\d{18}|\d{15})$/.test(value))) {
callback(new Error('请输入正确的银行账号'));
} else {
callback();
}
},
//邮箱校验
mailValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入邮箱'));
} else if(!(/^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})$/.test(value))) {
callback(new Error('请输入正确的邮箱'));
} else {
callback();
}
},
//网址校验
urlValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入网址'));
} else if(!(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(value))) {
callback(new Error('请输入正确的网址'));
} else {
callback();
}
},
urlValidator2(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback();
} else if(!(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(value))) {
callback(new Error('请输入正确的网址'));
} else {
callback();
}
},
//只能输入字母和数字,不能输入小数点
numEnValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入'));
} else if(!(/^[\da-z]+$/i.test(value))) {
callback(new Error('请输入正确的格式'));
} else {
callback();
}
},
//数字校验
numValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入数字'));
} else if(!(/^(\d)*$/.test(value))) {
callback(new Error('请输入正确的数字'));
} else {
callback();
}
},
//价格校验 数字 不可<0 可带小数点 小数点前小于等于9位 小数点后小于等于2位
moneyValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入金额'));
} else if(!(/^0\.([1-9]|\d[1-9])$|^[1-9]\d{0,8}\.\d{1,2}$|^[1-9]\d{0,8}$/.test(value))) {
callback(new Error('请输入正确的金额'));
} else if(value <= 0) {
callback(new Error('请输入正确的金额'));
} else {
callback();
}
},
//工商注册号校验
industryNumValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback();
} else if(!(/^\d{15}$/.test(value))) {
callback(new Error('请输入正确的工商注册号'));
} else {
callback();
}
},
//18位组织机构代码校验
orgCodeValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback();
} else if(!(/^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{2,10}$/.test(value))) {
callback(new Error('请输入正确的机构代码'));
} else {
callback();
}
},
//传真校验
faxValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback();
} else if(!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) {
callback(new Error('请输入正确的传真号码'));
} else {
callback();
}
},
//邮政编码校验
postCodeValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback();
} else if(!(/^[1-9][0-9]{5}$/.test(value))) {
callback(new Error('请输入正确的邮政编码'));
} else {
callback();
}
},
//20个中文校验
codeLengthValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入使用标准'));
} else if(value.length > 20) {
callback(new Error('最多输入20个描述文字'));
} else {
callback();
}
},
//正数校验
PositiveNumValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入金额'));
} else if(!(/^([1-9][0-9]*){1,3}$/.test(value))) {
callback(new Error('请输入正整数金额'));
} else {
callback();
}
},
//小于100的正数校验
PositiveNumValidator2(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入金额'));
} else if(!(/^([1-9][0-9]*){1,3}$/.test(value))) {
callback(new Error('请输入正整数金额'));
} else if(value >= 100){
callback(new Error('请输入小于100的整数金额'));
} else {
callback();
}
},
/**
* 非空检验 true 非空 false 不为空
*/
validateNotEmpty(rule, value, callback){
let message = rule&&rule.message ? rule.message : "请输入内容" ;
let flag = false ;
if(!value && ("number" != typeof value)){ //null undefined "" 非数字
callback && callback(new Error(message));
}else if(value instanceof Array){//数组
if(value.length){//数组有元素
flag = true ;
callback && callback();
}else{
callback && callback(new Error(message));
}
}else if(value instanceof Object){//对像
for(let i in value){
flag = true ;
callback && callback();
break ;
}
callback && callback(new Error(message));
}else{
flag = true ;
callback && callback();
}
return flag ;
},
// 数字和字母组成的6-16位密码校验
PositivePswValidator(rule, value, callback) {
if(value === '' || typeof(value) == 'undefined') {
callback(new Error('请输入密码'));
} else if(!(/^[0-9a-zA-Z]{6,12}$/.test(value))) {
callback(new Error('请输入正确密码'));
} else {
callback();
}
},
// 车牌号校验
PlateValidator(rule, value, callback) {
if(!value) {
callback(new Error('请输入车牌号'));
}else if(!(/^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$/.test(value))) {
callback(new Error('请输入正确的车牌号'));
} else {
callback();
}
},
// 省市区级联选择校验
regionValidator(rule, value, callback){
if(value.length < 2) {
callback(new Error('请至少选择到市级'));
}else if(!value || value.length == 0){
callback(new Error('请选择地市'));
}else{
callback();
}
}
}
Vue + elementui 常用表单项正则校验
最新推荐文章于 2024-08-01 18:07:49 发布