1、内置的校验规则

after{target} - 比target要大的一个合法日期,格式(DD/MM/YYYY)
alpha - 只包含英文字符
alpha_dash - 可以包含英文、数字、下划线、破折号
alpha_num - 可以包含英文和数字
before:{target} - 和after相反
between:{min},{max} - 在min和max之间的数字
confirmed:{target} - 必须和target一样
date_between:{min,max} - 日期在min和max之间
date_format:{format} - 合法的format格式化日期
decimal:{decimals?} - 数字,而且是decimals进制
digits:{length} - 长度为length的数字
dimensions:{width},{height} - 符合宽高规定的图片
email - 不解释
ext:[extensions] - 后缀名
image - 图片
in:[list] - 包含在数组list内的值
ip - ipv4地址
max:{length} - 最大长度为length的字符
mimes:[list] - 文件类型
min - max相反
mot_in - in相反
numeric - 只允许数字
regex:{pattern} - 值必须符合正则pattern
required - 不解释
size:{kb} - 文件大小不超过
url:{domain?} - (指定域名的)url

如:ip:<input v-validate="'required|ip'" name="ip" type="text" placeholder="输入内容为ip格式">

2、自定义的校验规则

Validator.extend('qq', {
messages: {
zh_CN:field => 'qq号码输入不正确'
},
validate: value => {
return /^[1-9][0-9]{4,14}$/.test(value);
}
});

手机号:

Validator.extend('mobile', {
messages: {
zh_CN: (field) => '×手机号不正确!'
},
validate: (value) => {
return value.length == 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value);
} });

邮箱:

Validator.extend('email', {
messages: {
zh_CN: (field) => '×请填写有效邮箱地址'
},
validate: (value, arg) => {
return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(value);
}
});

密码:

Validator.extend('password', {
messages: {
zh_CN: field => '×请设置6-16位数字、字母登录密码'
},
validate: value => {
return /^[0-9A-Za-z]{6,20}$/.test(value);
}
});

验证码

Validator.extend('code', {
messages: {
zh_CN: field => '×请输入正确的验证码'
},
validate: value => {
return /[0-9]{6}/.test(value);
}
});

身份证号

Validator.extend('idCard', {
messages: {
zh_CN: (field) => '×身份证号码不正确!'
},
validate: (value) => {
var city = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外 " };
var pass = true; if (!value || !/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(value)) {
pass = false;
} else if (!city[value.substr(0, 2)]) {
pass = false;
} else {
//18位身份证需要验证最后一位校验位
if (value.length == 18) {
value = value.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
//校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i <; i++) {
ai = value[i];
wi = factor[i];
sum += ai * wi;
}
var last = parity[sum % 11];
if (parity[sum % 11] != value[17]) {
pass = false;
}
}
}
return pass;
}
});

3、常用的自定义校验

const dictionary = {
zh_CN: {
messages: {
required: (field) => "请输入您的" + field,
},
attributes: {
realName: '真实姓名',
idCard: '身份证',
bank: '银行',
region: '开户行地址',
bankNo: '银行卡号',
reBankCode: '确认卡号',
oldPayPass: '原交易密码',
payPass: '交易密码',
rePayPass: '确认密码',
oldPwd: '原登录密码',
newPwd: '登录密码',
password: '登录密码',
sure: '确认密码',
code: '验证码',
email: '邮箱',
mobile: '手机号',
emailcode: '验证码'
}
}
};
Validator.updateDictionary(dictionary);
    export function getForm(form) {
let myform=document.getElementById(form)
let formData = new FormData(myform),
getValue = formData.entries(),
serializeObj ={};
for (let pair of getValue) {
if (serializeObj[pair[0]]) {
if (Array.isArray(serializeObj[pair[0]])) {
serializeObj[pair[0]].push(pair[1]);
} else {
serializeObj[pair[0]] = [
serializeObj[pair[0]], pair[1]];
}
} else {
serializeObj[pair[0]] =pair[1];
}
}
return serializeObj;
}; export function getUrl(url) {
var mock=true;
let getUrl=!mock ? '' + url + '.shtml' : '/static/mock' + url + '.json';
return getUrl;
}; this.$validator.validateAll().then((result) => {
if (result) {
var formData=getForm("updapass");
this.$http.get(getUrl('/base/checkLogin'),{params: formData})
.then( response => {
if(response.data.status == 0){
this.loginData=response.data.data;
}
}
)
.catch(function (response) {
console.log(response);
});
alert('表单提交了');
console.log(this.password);
return;
}
alert('请填写正确的信息');
});

参考:https://segmentfault.com/a/1190000011296437

http://blog.csdn.net/weixin_39107093/article/details/78584059

IE问题:有些表单校验 在IE中会默认校验  需要给元素绑定v-model 

如data中写入code:"",标签上写入v-model="code"

vue 校验插件 veeValidate使用的更多相关文章

  1. vue各种插件汇总

    https://blog.csdn.net/wh8_2011/article/details/80497620(copy) Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一 ...

  2. vue常用插件汇总

    UI-框架element - 饿了么出品的Vue2的web UI工具套件 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI 组件库 Keen-UI - 轻量 ...

  3. vue 常用插件,保存

    UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 mint-ui- Vue 2的移动UI元素 iview- 基于 Vuejs 的开源 UI ...

  4. 从零构建vue项目(三)--vue常用插件

    一.直接拉取的模板中,package.json如下: { "name": "vuecli2-test", "version": " ...

  5. 【JAVAWEB学习笔记】28_jqueryAjax:json数据结构、jquery的ajax操作和表单校验插件

    Ajax-jqueryAjax 今天内容: 1.json数据结构(重点) 2.jquery的ajax操作(重点) 3.jquery的插件使用   一.json数据结构 1.什么是json JSON(J ...

  6. 写一个Vue loading 插件

    什么是vue插件? 从功能上说,插件是为Vue添加全局功能的一种机制,比如给Vue添加一个全局组件,全局指令等: 从代码结构上说,插件就是一个必须拥有install方法的对象,这个方法的接收的第一个参 ...

  7. Vue自定义插件方法大全

    新年第一天首先祝大家新年快乐,心想事成! 1.利用根实例构造函数的原型 //在构造函数的原型链上添加自定义属性 Vue.prototype.test = 'pomelo' //在其他组件中调用 con ...

  8. vue.js及项目实战[笔记]— 03 vue.js插件

    一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...

  9. VUE图片懒加载-vue lazyload插件的简单使用

    序:vue项目时候,我们要对图片进行懒加载处理,这个开发项目中就不需要自己去写了,因为比较方便使用vue lazyload进行处理,高效率开发 一. vue lazyload插件: 插件地址:http ...

随机推荐

  1. Java基于ssm框架的restful应用开发

    Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...

  2. Syntax error on token "Invalid Regular Expression Options", no accurate corr

    今天导入项目一个js文件报这个错 Syntax error on token "Invalid Regular Expression Options", no accurate c ...

  3. python 函数私有方法

    #coding:utf-8 class A(object): def _test1(self): print('this is _test1') def test2(self): print('thi ...

  4. Vue2.x之父子组件数据传递

    父传子,并且通过fatherEvent接收子组件传过来的值 <template> <div class='father'> <Son :fatherData=" ...

  5. Exam E05-001 Information Storage and Management Version 3 Exam

    Emc 考试 e05-001信息存储和管理版本3考试 [总问题:171] 哪种 emc 产品提供软件定义的存储基础架构的自动监视和报告? A. viprSrmB. 斯纳普内C. 阿瓦马尔D. 快速副总 ...

  6. node.js(http协议)

    七层网络协议 应用层:浏览器(http,FTP,DNS,SMTP,TeInet)(邓哥)表示层:加密,格式转换(怕别人偷看,加密摩斯电码)会话层:解除或者建立和其他节点的联系(邓哥在想追这个女孩,不再 ...

  7. YII使用beanstalk队列

    转载于:http://blog.csdn.net/yao970953039/article/details/41821387 1.系统centos 我是直接使用yum install beanstal ...

  8. nginx的MainLine version、Stable version、Legacy versions

    Nginx的版本说明Mainline version:在线版本,正处于开发状态Stable version :稳定版本(一般下载使用)Legacy version :遗留版本,遗留的老的版本 Linu ...

  9. jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)

    1.使用load()方法异步请求数据   使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:   load(url,[data],[callba ...

  10. js返回一组日期中最近连续的天数

    用js获取一组日期(并把当天算入)中连续的天数 刚开始可能想到单纯的比较日期大小判断连续, 而又有大小月,平闰年这些因素,还是时间戳来的安全; 首先得有一组日期,比如: var arr = [ '20 ...