2

我是 Vue.js 开发的新手。

使用 Vee-validate,我想将验证规则设置为“必需”和“正则表达式”(例如,电话号码应该是必需的 && \d{11})。

我仔细阅读了官方文档。

但是,我不知道如何将包括正则表达式在内的两个条件放入 Vue 实例的“created()”中。

以下作品:

this.$validator.attach({ name: "tel", rules: "required" });

但这不起作用:

this.$validator.attach({ 
  name: "tel", 
  rules: "{ 
    required: true , regex: /\d{11}/ 
  }'" 
});

如何启用多个条件?

4

1 回答 1

2

我更喜欢自己使用指令版本。将 VeeValidate 导入组件后,您可以访问所有内置验证,v-validate并可以使用管道运算符将它们链接在一起|

<template>
    <input name="email" type="text" v-model="emailData" v-validate="'required|email'">
    <button @click="submit()"></button>
</template>

<script>
    import VeeValidate from 'vee-validate'; //wherever your plugin is stored
    data() {
        return {
            emailData: null,
        },
    },
    methods: {
        // call this method upon form submission, this will validate all fields using the specified validation
        submit() {
            this.$validator.validateAll().then((result) => {
                if (result) {
                    // form/input(s) passed validation. Do something
                }
            });
    }
</script>

如果您想在不使用指令的情况下完成此操作,则应使用以下方法:

import { Validator } from 'vee-validate';
const validator = new Validator();
const expressions = {
    required: true,
    regex:    /\d{11}/
};
validator.attach({ name: 'tel', rules: expression });
// continue with validator.validate() etc...
于 2018-04-26T21:48:49.447 回答