vue 表单验证

//身份证号码验证
data(){
	var checkIdNum = (rule, value, callback) => {
		const reg =
		   /(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)/
		 if (!value) {
		   return callback(new Error('证件号码不能为空'))
		 } else if (!reg.test(value)) {
		   return callback(new Error('证件号码不正确'))
		 } else {
		   callback()
		 }
	},
	return{
		dialog:{
			rules:{
				idCard: [
					{ required: true, message: '请输入身份证号', trigger: 'blur' },
					{ validator:checkIdNum,trigger:'blur' }
				],
			}
		}
	}
}

//手机号码
pattern:/^[1][3,4,5,7,8][0-9]{9}$/

//固定电话
pattern:/^0\d{2,3}-\d{7,8}$/,
let checkMobile = (rule, value, callback) => {
	const reg = /^[1][3,4,5,7,8][0-9]{9}$/;   //手机号码
	const reg1 = /^0\d{2,3}-\d{7,8}$/;  //电话号码
	if(!value){
		return callback(new Error('电话号码不能为空'))
	}else if(!reg.test(value) && !reg1.test(value)){
		return callback(new Error('请输入正确的手机号码或者电话号码'))
	}else{
		callback();
	}
}


//邮箱
pattern:/^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/,

//是否合法IP地址:
pattern:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/

//是否合法url
pattern:/^(https?|ftp):\/\/([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.,?'\\+&%$#=~_-]+))*$/;,

//经度
let lonFormat = (rule, value, callback) => {
	const reg = /^-?((1?[0-7]?[0-9]?)(([.][0-9]{1,6})?)|180(([.][0]{1,6})?))$/;
	if(!value){
		return callback(new Error('经度不能为空'))
	}else if(!reg.test(value)){
		return callback(new Error('请输入正确的经度格式及范围值,(最多保持6位小数)'))
	}else{
		callback();
	}
}

//纬度
let latFormat = (rule, value, callback) => {
	const reg = /^-?(([1-8]?[0-9]?)(([.][0-9]{1,6})?)|90(([.][0]{1,6})?))$/;
	if(!value){
		return callback(new Error('纬度不能为空'))
	}else if(!reg.test(value)){
		return callback(new Error('请输入正确的纬度格式及范围值,(最多保持6位小数)'))
	}else{
		callback();
	}
}

//整数
pattern:/^-?[1-9]\d*$/,

//正整数
pattern:/^[1-9]\d*$/,

//小写字母
pattern:/^[a-z]+$/,

//大写字母
pattern:/^[A-Z]+$/,

//大小写混合
pattern:/^[A-Za-z]+$/,

//数字加英文,不包含特殊字符
pattern:/^[a-zA-Z0-9]+$/,

//密码校验(6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种)
pattern:/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/,
let checkPassword = (rule, value, callback) => {
	const reg = /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/;
	if(!value){
		return callback(new Error('账号密码不能为空'))
	}else if(!reg.test(value)){
		return callback(new Error('请输入6-20位英文字母、数字或者符号,至少两种'))
	}else{
		callback();
	}
}


//中文校验
pattern:/^[\u4e00-\u9fa5]+$/,



//data内:
rules:{
	lon:[
		{ required: true, message: '请选择所属时区', trigger: 'blur' },
		{ validator:lonFormat, trigger:'blur' }
	],
	lat:[
		{ required: true, message: '请输入纬度', trigger: 'blur' },
		{ validator:latFormat, trigger:'blur' }
	],
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值