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

Abu*_*ian 5 custom-validators vuejs2

版本:

  • 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)
});
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激.

Ben*_*ghs 3

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

因此,请在标记(字符串表示法)中尝试此操作,删除单引号。

v-validate = "password"
Run Code Online (Sandbox Code Playgroud)

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

v-validate = "{password: true}"
Run Code Online (Sandbox Code Playgroud)

问候本