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,如果输入不符合规则,就将这个类名添加到输入框上。

相关推荐
moyu8411 分钟前
跨域问题解析(上):JSONP、CORS与Node代理解决方案
前端
moyu8414 分钟前
深入理解TCP的三次握手与四次挥手
前端
不一样的少年_31 分钟前
头像组件崩溃、乱序、加载失败?一套队列机制+多级兜底全搞定
前端·vue.js
Code_XYZ39 分钟前
uni-app x开发跨端应用,与web-view的双向通信解决方案
前端
wordbaby40 分钟前
构建时规划,运行时执行:解构 React Router 的 prerender 与 loader
前端·react.js
用户58061393930040 分钟前
【前端工程化】Eslint+Prettier vue项目实现文件保存时自动代码格式化
前端
麦当_40 分钟前
基于 Shadcn 的可配置表单解决方案
前端·javascript·面试
MrSkye1 小时前
从零到一:我用AI对话写出了人生第一个弹幕游戏 | Prompt编程实战心得
前端·ai编程·trae
Cutey9161 小时前
使用Canvas实现实时视频处理:从黑白滤镜到高级特效
前端·javascript
前端大卫1 小时前
前端调试太痛苦?这 6 个技巧直接解决 90% 问题!
前端·javascript