Vue rules校验规则详解

Vue.js 提供了一套轻量级的、可扩展的模板校验规则。这些规则可以通过在v-model绑定中添加.modifier来使用,例如v-model.trim

下面是一些常见的 Vue.js 校验规则:

  • required: 检查值是否非空
  • email: 检查值是否符合电子邮件格式
  • min: 检查值是否大于等于指定的最小值
  • max: 检查值是否小于等于指定的最大值
  • minLength: 检查值的长度是否大于等于指定的最小长度
  • maxLength: 检查值的长度是否小于等于指定的最大长度
  • numeric: 检查值是否为数字
  • regex: 检查值是否符合指定的正则表达式

这是使用 .modifier 将这些规则应用于 v-model 的一个例子:

html 复制代码
<template>
  <div>
    <input v-model.trim="username" required>
    <input v-model.trim="email" type="email" required>
    <input v-model.number="age" type="number" min="18" max="99" required>
  </div>
</template>

在这个例子中:

  • v-model.trim 将输入值去掉前后空格
  • required 校验输入是否非空
  • type="email" 校验输入是否符合电子邮件格式
  • v-model.number 将输入转换成数字
  • minmax 校验输入是否在指定范围内

除了这些内置的校验规则,你还可以使用自定义的校验函数。校验函数应该返回一个布尔值,代表输入是否合法,例如:

html 复制代码
<template>
  <div>
    <input v-model="password" :class="{ invalid: !validatePassword }">
  </div>
</template>

<script>
export default {
  data() {
    return {
      password: '',
    };
  },
  computed: {
    validatePassword() {
      return this.password.length >= 8;
    },
  },
};
</script>

在这个例子中,我们使用了一个计算属性 validatePassword,它根据密码的长度来返回一个布尔值。我们还在输入框上绑定了一个类名 invalid,如果输入不符合规则,就将这个类名添加到输入框上。

相关推荐
期待のcode5 分钟前
图片上传实现
java·前端·javascript·数据库·servlet·交互
hbrown1 小时前
Flask+LayUI开发手记(十一):选项集合的数据库扩展类
前端·数据库·python·layui
猫头虎1 小时前
什么是 npm、Yarn、pnpm? 有什么区别? 分别适应什么场景?
前端·python·scrapy·arcgis·npm·beautifulsoup·pip
迷曳1 小时前
27、鸿蒙Harmony Next开发:ArkTS并发(Promise和async/await和多线程并发TaskPool和Worker的使用)
前端·华为·多线程·harmonyos
人生游戏牛马NPC1号2 小时前
学习 Flutter (四):玩安卓项目实战 - 中
android·学习·flutter
安心不心安2 小时前
React hooks——useReducer
前端·javascript·react.js
像风一样自由20202 小时前
原生前端JavaScript/CSS与现代框架(Vue、React)的联系与区别(详细版)
前端·javascript·css
啃火龙果的兔子2 小时前
react19+nextjs+antd切换主题颜色
前端·javascript·react.js
paid槮2 小时前
HTML5如何创建容器
前端·html·html5
小飞悟3 小时前
一打开文章就弹登录框?我忍不了了!
前端·设计模式