VeeValidate简单应用

11/2/2018VeeValidateVuejs前端

{% note info %}
VeeValidate 使你表单操作更加的轻松快捷。
{% endnote %}

#导读

vue 学习笔记(二)(opens new window)中已经介绍了 VeeValidate 相关知识,这篇文章将进一步介绍。

#简单使用

<input v-validate="'required'" name="myinput" type="text" />
<span>{{ errors.first('myinput') }}<&#47;span></span>
1
2
Vue.use(VeeValidate);
1

#部分语法含义

  • alpha_dash(包含字符、数字、破折号或下划线)
  • alpha_num(包含字符、数字)
  • alpha_spaces(包含字符、空格)
  • before(验证日期前后)
  • between(数字最大最小之间,包含最大、最小值)
  • data_between(规定的两个日期之间)
  • data_format(输入日期的规则)
  • decimal(规定最大小数位数)
  • digits(规定数字的位数)
  • ext(规定上传文件的类型)
  • image(规定上传的文件是图片)
  • ip(ipv4 地址是否正确)
  • mines(一类文件类型)
  • min&&max(最小最大长度)
  • numeric(全部是数字)
  • regex(正则)
  • size(文件大小)
  • url(浏览器地址

#关于提交或者校验

export default {
  // ...
  methods: {
    onSubmit() {
      this.$validator.validate().then(result => {
        if (!result) {
          // do stuff if not valid.
        }
      });
    }
  }
  // ...
};
1
2
3
4
5
6
7
8
9
10
11
12
13

#关于语言的修改

在入口文件中配置,例如中文

import VeeValidate, { Validator } from "vee-validate";
import zh from "vee-validate/dist/locale/zh_CN";
Validator.localize("zh_CN", zh);
Vue.use(VeeValidate);
1
2
3
4

#关于提示信息

const dict = {
  custom: {
    // input里面的name
    email: {
      required: "邮箱不为空?",
      email: "兄弟你错了"
    }
  }
};

this.$validator.localize("zh_CN", dict);

// 或者(看Validator是否引入)
Validator.localize("zh_CN", dict);
1
2
3
4
5
6
7
8
9
10
11
12
13
14

#关于自定义规则

this.$validator.extend('password', {
    getMessage: field => field + '最少6位,包括至少1字母、特殊字符、数字',
    validate: value => {
        return  /^.*(?=.{6,})(?=.*\d)(?=.*[A-Za-z])(?=.*[!@#$%^&*? ]).*$/.test(value)
    }
});

// 或者
Validator.extend(...);
1
2
3
4
5
6
7
8
9

#参考文章

Last Updated:5/25/2024, 2:23:06 AM