【问题标题】:vee-validate No such validator 'required' exists. with regexvee-validate 不存在这样的验证器“必需”。用正则表达式
【发布时间】:2020-07-22 05:43:09
【问题描述】:

我为我的应用制作了以下可重复使用的输入组件,其中我添加了 vee-validate 以进行验证。

Input.vue

      <input
        :type="type"
        v-on="$listeners"
        :value="value"
        :class="errors.first(name) ? 'input mt-2 is-danger' : 'input mt-2'"
        @input="$emit('update', $event.target.value)"
        :placeholder="placeholder"
        v-validate="rules"
        :name="name"
      />
      <span class="has-text-danger-dark">{{ errors.first(name) }}</span>
      
      
<script>
export default {
  inheritAttrs: false,
  props: ["label", "placeholder","name", "rules", "value", "type"],
  model: {
    prop: "value",
    event: "update",
  },
};
</script>

我使用这个组件如下:

<Input
      placeholder="(912) 555-4321"
      v-model.lazy="basics.phone"
      label="Phone"
      type="tel"
      slot="field"
      name="phone"
      rules="{required: true, regex: ^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$}"
    />

发送上述参数后,我在输入字段电话上收到错误消息:

[vee-validate] 不存在这样的验证器“{required”。

我已经将该组件用于具有验证规则的其他输入,并且它可以工作。但使用正则表达式则不然。

    <Input
      placeholder="john@gmail.com"
      v-model.lazy="basics.email"
      label="Email"
      type="email"
      slot="field"
      name="email"
      rules="required|email"
    />

【问题讨论】:

    标签: javascript vue.js vuejs2 vee-validate


    【解决方案1】:

    刚刚发现我需要在js中转义\。

    regex: /^[\\+]?[(]?[0-9]{3}[)]?[-\s\\.]?[0-9]{3}[-\s\\.]?[0-9]{4,6}$/im

    【讨论】:

      猜你喜欢
      • 2018-11-29
      • 1970-01-01
      • 2020-05-01
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2021-07-04
      相关资源
      最近更新 更多