Vue + elementui 常用表单项正则校验

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();
 		 }
	 }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑笑菇凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值