【前端】表单密码格式—校验。

如图:实现表单输入密码和确认密码的时候进行表单校验。

实现方式:

1.在代码的data里面定义,函数验证的方法。如图所示,代码如下

【代码】如下:

javascript 复制代码
 const validatePassword = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请输入密码'));
      } else {
        let yz = 0;
        this.passwordPercent = 0;
        //6-20位包含字符、数字和特殊字符
        if (this.form1.newPassword.length < 11) {
          callback(new Error("长度在 11 到 20 个字符"));
        }
        if (this.form1.newPassword.match(/([a-z])+/)) {
          yz++;
        }
        if (this.form1.newPassword.match(/([0-9])+/)) {
          yz++;
        }
        if (this.form1.newPassword.match(/([A-Z])+/)) {
          yz++;

        }
        if (this.form1.newPassword.match(/([\W_])+/)) {
          yz++;
        }
        if (yz < 2) {
          callback(new Error("密码必须是大小写字母、数字、特殊符号两种及以上组成"));
        }
        switch (yz) {
          case 0: this.passwordPercent = 0; callback();
          case 1: this.passwordPercent = 25; callback();
          case 2: this.passwordPercent = 50; callback();
          case 3: this.passwordPercent = 75; callback();
          case 4: this.passwordPercent = 100; callback();
        }
      }
    };
    const equalToPassword = (rule, value, callback) => {
      if (this.form1.newPassword !== value) {
        callback(new Error("两次输入的密码不一致"));
      } else {
        callback();
      }
    };

2.设置表单校验的rule。 rule在return函数里面。名称可以自己定义。作为变量使用。

javascript 复制代码
rules1: {
        selectApps: [{ required: true, message: "请选择应用系统", trigger: "blur" }],
        newPassword: [
          { required: true, message: "新密码不能为空", trigger: "blur" },
          { min: 8, max: 20, validator: validatePassword, trigger: "blur" }
        ],
        confirmPassword: [
          { required: true, message: "确认密码不能为空", trigger: "blur" },
          { required: true, validator: equalToPassword, trigger: "blur" }
        ]
      },

3.给表单添加rule。 则表单输入会按照规则进行校验。:rules="rules1"

rules1就是步骤二定义的规则

javascript 复制代码
 <el-form ref="form1" :model="form1" :rules="rules1" label-width="100px" v-if="radio == 1">
 </el-form>
相关推荐
程序员猫哥6 分钟前
前端开发,一句话生成网站
前端
Younglina27 分钟前
一个纯前端的网站集合管理工具
前端·vue.js·chrome
木头程序员28 分钟前
前端(包含HTML/JavaScript/DOM/BOM/jQuery)基础-暴力复习篇
开发语言·前端·javascript·ecmascript·es6·jquery·html5
卖火箭的小男孩30 分钟前
# Flutter Provider 状态管理完全指南
前端
小雨青年30 分钟前
鸿蒙 HarmonyOS 6|ArkUI(01):从框架认知到项目骨架
前端
Null15532 分钟前
浏览器唤起本地桌面应用(基础版)
前端·浏览器
pas1361 小时前
31-mini-vue 更新element的children
前端·javascript·vue.js
wordbaby1 小时前
TanStack Router 实战:如何构建经典的“左侧菜单 + 右侧内容”后台布局
前端·react.js
oMcLin1 小时前
如何在 RHEL 7 上优化 Nginx 与 PHP‑FPM 配置,确保高并发 Web 应用的稳定性与响应速度?
前端·nginx·php
Taiyuuki1 小时前
WebGPU 开发者福音!在 VS Code 中实时预览你的WGSL着色器作品
前端·gpu·图形学