vee-validate自定义验证规则不起作用

时间:2017-07-30 06:59:41

标签: vuejs2 custom-validators

版本:

  • VueJs:2.2.6
  • Vee-Validate:^ 2.0.0-beta.25

说明

我正在开展一个项目,我使用laravel-vue-starter 作为基本模板。

我想对密码使用自定义验证。所以我用代码创建了一个resources \ assets \ _js \ validators \ passwordValidators.js文件:

import { Validator } from 'vee-validate';

Validator.extend('password', {
    getMessage: field => 'Insert a strong password, it should contain Uppercase letter, lowercase letter, number and special character',
    validate: value => /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.[\W]).{8,}$/.test(value)
});

但是当我添加v-validate="'password'"时 它会产生错误[vee-validate] No such validator 'password' exists

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

我认为答案很简单,您现在使用的是规则名称“密码”,但您的规则是密码。

所以在你的标记中尝试这个(字符串表示法),删除单引号。

v-validate = "password"

或者当你有超过1和复杂的规则时,你也可以使用对象表示法。

v-validate = "{password: true}"

关心Ben