Vue属性中的正则表达式v-validate

时间:2019-02-26 12:52:47

标签: regex validation vue.js vee-validate

我想在名称字段中使用破折号/连字符

<input v-model="$parent.teacher.firstName" v-validate="'required|alpha|min:2'"
                           placeholder="Eva" class="bw" type="text" name="firstname"
                           autocomplete="teacher-firstname"/>

我该怎么做?我试图添加一个正则表达式,例如v-validate中的'^ [a-z] +(-[a-z] +)* $'但什么也没发生

2 个答案:

答案 0 :(得分:2)

您可以create a custom rule

类似这样的东西:

import { Validator } from 'vee-validate';

Validator.extend('name', {
  getMessage: field => 'The ' + field + ' value is not a valid name.',
  validate: value => value.test(/^[a-z]+(-[a-z]+)*$/)
});

答案 1 :(得分:1)

您可以考虑将alpha更改为alpha_dash

您可以使用v-validate="{ required: true, regex: /^[a-z]+(?:-[a-z]+)*$/i, min: 2 }"设置自定义正则表达式:

<input v-model="$parent.teacher.firstName"
  v-validate="{ required: true, regex: /^[a-z]+(?:-[a-z]+)*$/i, min: 2 }" 
  placeholder="Eva" class="bw" type="text" name="firstname" autocomplete="teacher-firstname">

请参见relevant documentation