当前位置: 首页 > news >正文

vue+elementUI用户修改密码的前端验证

用户登录后修改密码,密码需要一定的验证规则。旧密码后端验证是否正确;前端验证新密码的规范性,新密码规范为:6-16位,至少含数字/字母/特殊字符中的两种;确认密码只需要验证与新密码是否一致;

效果图

弹窗结构

<el-dialog title="修改密码":visible.sync="passDlgVisible"@close="passDlgClose"width="400px"><el-form :model="passForm"ref="passRef":rules="passRules"hide-required-asterisklabel-width="70px"size="small"><el-form-item label="旧密码" prop="oldPassword"><el-input v-model="passForm.oldPassword" show-password></el-input></el-form-item><el-form-item label="新密码" prop="newPassword"><el-input v-model="passForm.newPassword" show-password></el-input></el-form-item><el-form-item label="确认密码" prop="confirmPassword"><el-input v-model="passForm.confirmPassword" show-password></el-input></el-form-item></el-form><span slot="footer"><el-button @click="passDlgVisible=false" size="small">取消</el-button><el-button @click="passSave" type="primary" size="small">确认</el-button></span>
</el-dialog>

form验证规则

passRules: {oldPassword:[{required: true, message: '请输入旧密码', trigger: 'blur'}],newPassword:[{validator: this.validNewPass, trigger: 'blur'}],confirmPassword:[{validator: this.validConfirmPass, trigger: 'blur'}]
}

验证函数

/*** 验证新密码*/
validNewPass(rule, value, callback) {let reg = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%^&*?]{6,16}$/if (value === '') {callback(new Error('请输入新密码'));} else if (!reg.test(value)) {callback(new Error('6-16位,至少含数字/字母/特殊字符中的两种'))} else {if (this.passForm.confirmPassword !== '') {this.$refs.passRef.validateField('confirmPassword');}callback();}
},/*** 验证确认密码*/
validConfirmPass(rule, value, callback) {if (value === '') {callback(new Error('请再次输入密码'));} else if (value !== this.passForm.newPassword) {callback(new Error('两次输入密码不一致!'));} else {callback();}
}

弹窗关闭后清空字段和验证

/*** 弹窗关闭事件*/
passDlgClose() {this.passForm = {oldPassword: '',newPassword: '',confirmPassword: ''}this.$refs.passRef.clearValidate();
}

提交表单

passSave() {this.$refs.passRef.validate((valid) => {if (valid) {this.passForm.userName = this.userNameapi.user.editPass(this.passForm).then(res => {this.passDlgVisible = false;})} else {return false;}});
}

这就是修改密码的全部流程啦。。。。有问题评论区答复。。。。能解决的就答复,不能解决的自己百度哈。。。。

相关文章:

vue+elementUI用户修改密码的前端验证

用户登录后修改密码&#xff0c;密码需要一定的验证规则。旧密码后端验证是否正确&#xff1b;前端验证新密码的规范性&#xff0c;新密码规范为&#xff1a;6-16位&#xff0c;至少含数字/字母/特殊字符中的两种&#xff1b;确认密码只需要验证与新密码是否一致&#xff1b; 弹…...

微信小程序问题定位——sourcemap文件

使用sourceMap在微信小程序中进行线上问题定位&#xff0c;主要可以通过以下步骤实现&#xff1a; 下载微信开发者工具首先&#xff0c;确保已经安装了微信开发者工具&#xff0c;这是进行小程序开发和调试的基础。登录微信公众平台并下载sourceMap文件&#xff1a;登录微信小…...

Photoshop_00000

简介 Adobe官网&#xff1a;https://www.adobe.com Adobe中文官网&#xff1a;https://www.adobe.com/cn Adobe中国服务商&#xff1a;http://adobe.sxbyu.cn/adobe/adobe_index?flag800&bd_vid5593893117402635109# Photoshop安装 基础操作 文件的打开和新建 打开文…...

rviz上不显示机器人模型(模型只有白色)

文档中的是base_footprint&#xff0c;需要根据自己所设的坐标系更改&#xff0c;我的改为base_link 如何查看自己设的坐标系&#xff1a; 这些parent父坐标系就是 同时打开rviz后需要更改成base_link...

Android 录屏操作

Android 录屏操作 本文主要介绍android中如何通过MediaRecorder实现录屏操作的. 1: 申请权限 <uses-permission android:name"android.permission.RECORD_AUDIO" /> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的血细胞智能检测与计数(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;开发血细胞智能检测与计数系统对于疾病的预防、诊断和治疗具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个血细胞智能检测与计数系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&a…...

Selenium 学习(0.20)——软件测试之单元测试

我又&#xff08;浪完&#xff09;回来了…… 很久没有学习了&#xff0c;今天忙完终于想起来学习了。没有学习的这段时间&#xff0c;主要是请了两个事假&#xff08;5工作日和10工作日&#xff09;放了个年假&#xff08;13天&#xff09;&#xff0c;然后就到现在了。 看了下…...

章六、集合(1)—— 概念、API、List 接口及实现类、集合迭代

零、 关闭IDEA调试时自动隐藏空元素 一、 集合的概念 存储一个班学员信息&#xff0c;假定一个班容纳20名学员 当我们需要保存一组一样&#xff08;类型相同&#xff09;的元素的时候&#xff0c;我们应该使用一个容器来存储&#xff0c;数组就是这样一个容器。 数组有什么缺…...

原生js html5 canvas制作flappy bird压扁小鸟游戏

可以以电脑浏览器的手机模式打开&#xff0c;也可以在手机浏览器中直接打开 游戏运用了Canvas的drawImage&#xff0c;translate&#xff0c;rotate&#xff0c;save&#xff0c;restore&#xff0c;fillRect等API。 采用中介者模式&#xff0c;Game类统领全局&#xff0c;负责…...

服务器集群 -- nginx配置tcp负载均衡

当面临高流量、高可用性、水平扩展、会话保持或跨地域流量分发等需求时&#xff0c;单台服务器受限于硬件资源、性能有限不能满足应用场景的并发需求量时&#xff0c;引入负载均衡器部署多个服务器共同处理客户端的并发请求&#xff0c;可以帮助优化系统架构&#xff0c;提高系…...

现代DevOps如何改变软件开发格局

在软件开发的早期&#xff0c;该过程通常是开发人员编写代码&#xff0c;再将其交给质量保证&#xff08;QA&#xff09;进行测试。这种瀑布开发方法可能会导致质量问题和延迟&#xff0c;因为问题是在周期后期发现的。 一、了解DevOps和测试左移 DevOps是Development和Opera…...

如何在WordPress网站上设置多语言展示

在今天的全球化世界中&#xff0c;拥有多语言网站对于吸引更广泛的受众至关重要。前不就我们遇到Hostease的客户咨询我们的在线客服&#xff0c;他想要对他的wordpress网站支持多语言。我们提供给客户可以尝试以下的插件来支持多语言。 在本教程中&#xff0c;我们将逐步介绍如…...

Pinia和Vuex有什么区别?

API设计&#xff1a; Pinia的API设计更加简洁和直观。它采用了类似于Vue Composition API的风格&#xff0c;使用了更加现代化的语法和概念。相比之下&#xff0c;Vuex的API设计较为传统&#xff0c;使用了基于对象和字符串的方式来定义和访问状态。 TypeScript支持&#xff…...

普林斯顿算法讲义(二)

原文&#xff1a;普林斯顿大学算法课程 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 2.2 归并排序 原文&#xff1a;algs4.cs.princeton.edu/22mergesort 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 我们在本节中考虑的算法基于一种简单的操作&#xff…...

JVM 面试——G1和ZGC的区别

ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器ZGC的目标主要有4个 支持TB量级的堆。我们生产环境的硬盘还没有上TB呢&#xff0c;这应该可以满足未来十年内&#xff0c;所有JAVA应用的需求了吧。最大GC停顿时间不超10ms。目前一般线上环境运行良好的JAVA应用Minor …...

当“新质生产力”遇上“CAE仿真”,将激起什么样的火花?

在刚刚闭幕的全国两会上&#xff0c;新质生产力无疑是最为“滚烫”的热词。发展新质生产力是推动高质量发展的内在要求和重要着力点&#xff0c;此次更被列为2024年政府重点任务的第一条。 新质生产力是创新起主导作用&#xff0c;摆脱传统经济增长方式、生产力发展路径&#…...

使用 ChatGPT 写高考作文

写作文&#xff0c;很简单&#xff0c;但写一篇好的作文&#xff0c;是非常有难度的。 想要写一篇高分作文&#xff0c;需要对作文题目有正确的理解&#xff0c;需要展现独到的观点和深入的思考&#xff0c;需要具备清晰的逻辑结构&#xff0c;需要准确而得体的语言表达。 正…...

mac输入su命令报错如何重置密码

diannao1xiejiandeMacBook-Air ~ % su Password: su: Sorry输入 sudo passwd 命令重置密码即可。...

KY211 特殊排序

描述&#xff1a; 输入一系列整数&#xff0c;将其中最大的数挑出(如果有多个&#xff0c;则挑出一个即可)&#xff0c;并将剩下的数进行排序&#xff0c;如果无剩余的数&#xff0c;则输出-1。 输入描述&#xff1a; 输入第一行包括1个整数N&#xff0c;1<N<1000&#x…...

设计模式八:观察者模式

文章目录 1、观察者模式2、示例3、spring中的观察者模式3.1 spring观察者模式的使用3.2 spring观察者模式原理解析 1、观察者模式 观察者模式&#xff08;Observer Design Pattern&#xff09;,也叫做发布订阅模式&#xff08;Publish-Subscribe Design Pattern&#xff09;、模…...

保姆级避坑指南:在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航(附5个常见报错解决方案)

保姆级避坑指南&#xff1a;在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航&#xff08;附5个常见报错解决方案&#xff09; 当你第一次尝试在Ubuntu 22.04上使用ROS2 Humble和TurtleBot3进行SLAM建图与导航时&#xff0c;可能会遇到各种令人沮丧的报错。这些报错往…...

别再让QNetworkAccessManager卡住你的Qt界面了!手把手教你用异步请求优化用户体验

Qt网络请求优化&#xff1a;彻底解决界面卡顿的异步编程实践 在开发需要频繁获取网络数据的Qt应用时&#xff0c;很多开发者都遇到过这样的场景&#xff1a;点击按钮后界面突然冻结&#xff0c;滚动条变得卡顿&#xff0c;整个应用失去响应——直到网络请求完成才恢复正常。这种…...

从RTL到GDSII:用Design Compiler优化时序的关键20个命令详解

从RTL到GDSII&#xff1a;用Design Compiler优化时序的关键20个命令详解 在先进工艺节点下&#xff0c;时序收敛已成为ASIC设计中最具挑战性的环节之一。当我们从RTL代码出发&#xff0c;最终生成满足PPA&#xff08;性能/功耗/面积&#xff09;目标的GDSII布局布线文件时&…...

Ubuntu下Minicom与Kermit串口工具对比:哪个更适合你的嵌入式开发?

Ubuntu下Minicom与Kermit串口工具深度评测&#xff1a;嵌入式开发者的终极选择指南 在嵌入式开发领域&#xff0c;串口通信如同开发者的"听诊器"&#xff0c;是调试硬件、监控系统状态的核心工具。Ubuntu作为最受开发者欢迎的Linux发行版之一&#xff0c;其生态中Mi…...

实战指南|OpenWrt磁盘扩容全流程解析与避坑技巧

1. 为什么需要给OpenWrt扩容&#xff1f; 很多朋友第一次接触OpenWrt时都会遇到一个尴尬的问题&#xff1a;系统默认分配的存储空间太小了。我自己刚开始用OpenWrt时也踩过这个坑&#xff0c;当时想装个Docker跑点服务&#xff0c;结果发现连最基本的镜像都拉不下来。这就像给…...

Windows上Rust报错找不到link.exe?别急着装VS,试试这几种更轻量的解决方案

Windows上Rust报错找不到link.exe&#xff1f;别急着装VS&#xff0c;试试这几种更轻量的解决方案 刚接触Rust的Windows开发者经常会遇到一个经典问题&#xff1a;运行cargo build时出现link.exe not found报错。传统解决方案是安装庞大的Visual Studio&#xff0c;但这对于只…...

QT国际化实战:如何用tr和translate正确处理多语言(含中文乱码修复)

QT国际化实战&#xff1a;从源码到翻译的全流程解决方案 在全球化浪潮下&#xff0c;软件多语言支持已成为基础能力。作为跨平台开发框架的佼佼者&#xff0c;QT提供了完整的国际化工具链&#xff0c;但中文开发者常陷入编码混乱、翻译失效等困境。本文将系统梳理从源码规范到翻…...

MySQL数据恢复实战:从frm和ibd文件重建完整数据表

1. MySQL数据恢复实战&#xff1a;从frm和ibd文件重建完整数据表 数据库管理员最怕听到的就是"数据丢了"三个字。我经历过好几次半夜被叫起来处理数据丢失的紧急情况&#xff0c;那种头皮发麻的感觉至今难忘。不过别担心&#xff0c;只要.frm和.ibd文件还在&#xff…...

4个步骤掌握Faze4机械臂开发:从硬件组装到智能控制的完整实践指南

4个步骤掌握Faze4机械臂开发&#xff1a;从硬件组装到智能控制的完整实践指南 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm Faze4开源六轴机械臂项目…...

HoRain云--Vue3组件开发:从入门到精通的终极指南

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...