密码至少包含大写、小写字母、数字和特殊字符其中三种

news2024/12/22 22:03:34

j

 正则表达式:

  var passReg = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,32}$/;
      if (!passReg.test(value)) {
        return callback(new Error('密码至少包含大写,小写字母,数字或特殊字符其中三种,长度至少8位(不包含空格)'));
      }

vue页面-JS代码: 

  data () {
    // 密码验证
    var validatePass = (rule, value, callback) => {
      if (value === '') {
        return callback(new Error('请输入密码'));
      } else {
        var passReg = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,32}$/;
        if (!passReg.test(value)) {
          return callback(new Error('密码至少包含大写,小写字母,数字或特殊字符其中三种,长度至少8位(不包含空格)'));
          if (this.ChangePwData.ConfirPwd !== '') {
            this.$refs.dataForm.validateField('ConfirPwd');
          }
        }
        callback();
      }
    };
    // 确认密码验证
    var validatePass2 = (rule, value, callback) => {
      if (value === '') {
        return callback(new Error('请再次输入密码'));
      }
      var passReg = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,32}$/;
      if (!passReg.test(value)) {
        return callback(new Error('密码至少包含大写,小写字母,数字或特殊字符其中三种,长度至少8位(不包含空格)'));
      }
      setTimeout(() => {
        if (value !== this.ChangePwData.NewPassword) {
          callback(new Error('两次输入密码不一致!'));
        } else if (value == this.ChangePwData.OldPassword) {
          callback(new Error('新密码不可和旧密码一致!'));
        } else {
          callback();
        }
      }, 100);
    };
    return { 
      changePwdDialog: false,
      ChangePwData: {
        OldPassword: '',
        NewPassword: '',
        ConfirPwd: ''
      },
      dialogTitle: "",
      ChangePwRules: {
        OldPassword: [
          {
            required: true,
            trigger: 'blur',
            message: '请输入旧密码'
          }
        ],
        NewPassword: [
          {
            trigger: 'blur',
            validator: validatePass
          }
        ],
        ConfirPwd: [
          {
            trigger: 'blur',
            validator: validatePass2
          }
        ]
      }







 showChangePwdDialog () {
      this.dialogTitle = "修改密码"
      this.changePwdDialog = true;
    },
    ChangePwdClosed () {
      if (this.$store.getters.isChangePwd == "True") {
        this.$message.error('已长时间未修改密码,请及时更新密码!');
        this.dialogVisible = true;
      }
    },
    clearInput () {
      // 重新填写密码
      this.ChangePwData.OldPassword = '';
      this.ChangePwData.NewPassword = '';
      this.ChangePwData.ConfirPwd = '';
      this.$refs.dataForm.resetFields();
    },
    confirmReset () {
      // 确认重置密码
      this.$refs.dataForm.validate(valid => {
        if (valid) {
          // 获取数据 提交
          this.RequestPost('/systemuserinfo?type=70', {
            OldPassword: this.ChangePwData.OldPassword == '' ? '' : md5(this.ChangePwData.OldPassword),
            NewPassword: this.ChangePwData.NewPassword == '' ? '' : md5(this.ChangePwData.NewPassword)
          })
            .then(response => {
              if (response.data.status) {
                this.$store.state.user.needchangepwd = false;
                // 请求成功
                this.$message.success('修改密码成功,请重新登录');
                this.dialogVisible = false;
                setTimeout(() => {
                  this.logout();
                }, 2000);
              } else {
                // 错误提示
                this.$message.error(response.data.msg);
              }
              this.$nextTick(() => {
                // 尽快隐藏  不必要等待500毫秒
                this.formLoading = false;
              });
            })
            .catch(err => {
              // this.isDisable = false
              this.$message.error(err);
            });
        }
      });
    }

vue页面代码: 

 <!-- <Warning :isshowalarm="isshowAlarm" :myclick="isClick" @refreshCount="refreashCountData" @changeState="changeState" /> -->
      <el-dialog :visible.sync="changePwdDialog" :title="dialogTitle" append-to-body width="40%" @closed="ChangePwdClosed">
        <el-form ref="dataForm" :model="ChangePwData" :rules="ChangePwRules" label-position="left" label-width="100px" style="width: 600px; margin-left:50px;">
          <el-form-item label="旧密码" prop="OldPassword">
            <el-input v-model="ChangePwData.OldPassword" class="filter-item" maxlength="32" type="password" placeholder="请输入旧密码" style="width:280px;" />
          </el-form-item>
          <el-form-item label="新的密码" prop="NewPassword">
            <el-input v-model="ChangePwData.NewPassword" class="filter-item" maxlength="32" type="password" placeholder="请输入新密码" style="width:280px;" />
            <!-- <br /><span style="color:red;"> *密码至少包含大写、小写字母、数字和特殊字符其中三种</span> -->
          </el-form-item>
          <el-form-item label="确认密码" prop="ConfirPwd">
            <el-input v-model="ChangePwData.ConfirPwd" class="filter-item" maxlength="32" type="password" placeholder="请再次输入密码" style="width:280px;" />
          </el-form-item>
          <div style="margin-left:100px;">
            <el-button type="primary" @click="confirmReset">确认重置</el-button>
            <el-button @click="clearInput">重新填写</el-button>
          </div>
        </el-form>
      </el-dialog>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1306706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外汇天眼:新手做外汇交易需要注意什么?

外汇投资是一个充满机会和挑战的市场&#xff0c;对于新手来说&#xff0c;了解一些必要的知识和技巧是非常重要的。 以下是一些新手投资外汇必须注意以下几点&#xff1a; 1.了解外汇市场的基本知识 在进入外汇市场之前&#xff0c;了解一些基本知识是必要的。 这包括外汇市…

触发器和函数:让代码更接近数据

来源&#xff1a;艾特保IT 虹科干货丨触发器和函数&#xff1a;让代码更接近数据 原文链接&#xff1a;虹科干货 | 触发器和函数&#xff1a;让代码更接近数据 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 文章速览&#xff1a; 触发器和函数的基础知识 编写语言…

2023_Spark_实验二十六:编写Shell模拟生成点击实时数据

引言&#xff1a;流式数据处理主要处理实时数据&#xff0c;由于实验教学过程中&#xff0c;每个同学无法拿到实时数据&#xff0c;因此我们开发shell脚本模拟实时数据生成&#xff0c;支持后续实验。 实验目的&#xff1a;通过开发模拟实时点击流shell脚本&#xff0c;模拟实时…

文本用二维码展示如何制作?支持插入图片或其他内容

将文本内容存入二维码中扫码查看&#xff0c;方便信息的快速传播&#xff0c;让其他人扫码就可以获取内容。那么想要把文本内容生成二维码&#xff0c;一般的制作方法可以利用二维码生成器来制作&#xff0c;操作的步骤也非常的简单&#xff0c;只需要用简单的几个步骤就可以快…

圣诞节酷炫特效合集【含十几个HTML+CSS前端特效+34个桌面酷炫圣诞程序】

写在前面 ❤️源码获取:订阅后见文末 ❤️内容介绍:包含HTML+CSS等十几个圣诞特效;以及三十四个桌面酷炫圣诞树合集 ❤️订阅后所得如下: ❤️HTML圣诞+桌面圣诞程序效果如下: 下方展示代码仅举例其中几个 所有效果源码及文件订阅后找博主获取即可 🎄css3圣诞雪人动…

Python爬虫实战 | 爬取拼多多商品的详情价格SKU数据

本案例将为大家演示如何爬取拼多多商品的详情数据。目的是爬取大量的商品以及商品的评论&#xff0c;所以在程序设计上要考虑到该爬虫的高并发以及持久化存储。爬虫工具选用了Scrapy框架&#xff0c;以满足爬虫的高并发请求任务&#xff1b;持久化存储用了MongoDB&#xff0c;对…

Feign-自定义配置

一、自定义Feign配置 二、修改日志级别 配置Feign日志有两种方式 方式一&#xff1a;application配置文件方式 &#xff08;1&#xff09;全局生效 feign: client: config: default: #这里用default就是全局配置&#xff0c;…

Quartus II + Modelsim 脚本仿真

软件版本&#xff1a;Intel Quartus Prime Design Suite: 23.2 方式参考附件Intel 官方文档&#xff1a;Questa*-Intel FPGA Edition Quick-Start: Intel Quartus Prime Pro Edition 第1步&#xff0c;创建一个ram ip&#xff0c;并形成一个例化的top层ip 第2步&#xff0c;自…

nestjs守卫校验jwt

目标 部分接口需要用户登录后才可以访问&#xff0c;用户登录后可以颁发 jwt_token 给前端&#xff0c;前端在调用需要鉴权的接口&#xff0c;需要在请求头添加 jwt_token&#xff0c;后端校验通过才能继续访问&#xff0c;否则返回403无权访问 创建守卫 anth 安装依赖 npm…

linux串口数据丢失--中断绑定CPU优化

问题现象 机器在户外测试时, 出现 轮速记 丢失的现象 小概率出现 50Hz丢失1~2帧极低概率出现 0.1~0.3秒内没有底盘数据 此问题导致slam定位漂, 需要优化处理. 验证与测试 问题1: 底盘串口 一个数据帧(head–data–crc) 被分片2~3报文 解决方法: 检测到head之后, 解析data…

2023全国大学生数据分析大赛A题完整论文教学

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 实…

bugku -- 网站被黑--本地管理员

dirsearch 或者御剑扫目录 扫出来有个登录页面 然后bp抓包爆破密码 扫出来密码是heck登录就行了 构造x-forwarded-for:127.0.0.1 本地登录&#xff1a; 爆破账号 密码是text123 下面的base64解码可以知道

《地理信息系统原理》笔记/期末复习资料(11. GIS的输出与地图可视化)

目录 11. GIS的输出与地图可视化 11.1. GIS的输出 11.1.1. 输出方式 11.1.2. GIS的图形输出设备 11.2. 地图符号 11.2.1. 地图符号的实质 11.2.2. 地图符号的分类 11.2.3. 地图符号的设计要求 11.3. 专题信息表达 11.3.1. 专题地图的基本概念 11.3.2. 专题地图的表示…

漏洞补丁存在性检测技术洞察

1、 漏洞补丁存在性检测技术是什么&#xff1f; 漏洞补丁存在性检测技术通俗的理解就是检测目标对象中是否包含修复特定已知漏洞的补丁代码&#xff0c;目标检测对象可能是源码&#xff0c;也能是二进制文件。 2、 漏洞补丁存在性检测技术业务背景 补丁检测这个问题背景是产品…

SSL证书验证域名所有权

SSL证书申请时需要进行验证&#xff0c;这是因为SSL证书的主要目的是为了确保网络通信的安全性和数据的完整性。通过验证&#xff0c;证书颁发机构&#xff08;CA&#xff09;可以确认申请者对特定域名或资源的所有权&#xff0c;并确保他们有权使用该证书来加密和保护用户与网…

vue3 实现日期格式化

vue3 实现日期格式化 在标签内添加 value-format"YYYY-MM-DD" <el-form-item label"注册时间:"><el-date-picker v-model"tableForm.date" type"date" value-format"YYYY-MM-DD" placeholder"选择注册时间&…

探究Spring Boot 中实现跨域的几种方式

文章目录 前言1. 使用CrossOrigin注解2. 使用WebMvcConfigurer配置3. 使用Filter配置4. 使用全局配置结束语 前言 在现代Web应用中&#xff0c;由于安全性和隐私的考虑&#xff0c;浏览器限制了从一个域向另一个域发起的跨域HTTP请求。解决这个问题的一种常见方式是实现跨域资…

MyBatis框架知识点①

MyBatis 1.MyBatis的特点2.搭建MyBatis项目依赖文件配置编写MyBatis中全局配置文件数据库SQL编写实体类编写映射文件加载映射文件log4j配置编写测试程序 3.增删改查的基本操作查询操作新增操作修改删除操作 4. Mapper代理方式Mybatis 工具类实体类Mapper接口mapper文件加载mapp…

一览科技创始人罗江春:AI涌现,文娱迎来黄金十年

编者荐语&#xff1a; 一览科技创始人兼CEO罗江春先生在11月28日的极新AIGC峰会上发表了以“AI涌现&#xff0c;文娱迎来黄金十年”为题的演讲&#xff0c;关于AIGC对文娱行业的加持以及AI创业公司的方向和基本点&#xff0c;罗江春先生给出了未来的方向。 以下文章来源于一览…

广度(宽度)优先搜素——层层递进

分析算法及题目 完整代码实现 广度优先搜索&#xff08;Breadth-First Search&#xff0c;BFS&#xff09;是一种图和树的遍历算法&#xff0c;与深度优先搜索相对应。BFS从起始节点开始&#xff0c;首先访问起始节点&#xff0c;然后逐层地访问其邻居节点&#xff0c;直到达到…