在项目开发中,修改密码以及重置密码的业务场景太常见了,但是对于密码的复杂度有一定的要求。前端对于此类要求最简便的方式就是正则校验。下面看一个例子。

<template><div class="app-container"><el-card><el-form ref="ruleForm" :model="form" :rules="rules" label-width="100px" class="demo-ruleForm"><el-form-item label="旧密码" prop="oldPassword"><el-input v-model="form.oldPassword" type="password" show-password /></el-form-item><el-form-item label="新密码" prop="newPassword"><el-input v-model="form.newPassword" type="password" show-password /></el-form-item><el-form-item label="确认密码" prop="password"><el-input v-model="form.password" type="password" show-password /></el-form-item><el-form-item label="" prop="password"><el-button type="primary" @click="submit">确定</el-button><el-button type="primary" plain @click="reset">重置</el-button></el-form-item></el-form></el-card></div>
</template>
<script>
export default {data() {var testPassword = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!#@*&.])[a-zA-Z\d!#@*&.]*$/var password = (rule, value, callback) => {if (this.form.newPassword !== value) {return callback(new Error('与新密码不一致'))}else{callback()}}var newPassword = (rule, value, callback) => {if (testPassword.test(this.form.newPassword) === false) {return callback(new Error('密码强度不够'))}else{callback()}}return {form: {},rules: {oldPassword: [{ required: true, message: '请输入旧密码', trigger: 'blur' }],newPassword: [{ required: true, message: '请输入新密码', trigger: 'blur' },{ validator: newPassword, trigger: 'blur' }],password: [{ required: true, message: '请输入确定密码', trigger: 'blur' },{ validator: password, trigger: ['change', 'blur'] }]}}},methods: {reset() {this.$refs.ruleForm.resetFields()},submit() {console.log(this.form)}}
}
</script>

这是我项目中的静态页面代码,功能已经全部实现。如有需要可以自取。

下面讲一下核心代码以及业务逻辑。我们在表单中通过表单验证,自定义的一个方法,通过定义一个正则表达式,对于用户输入的新密码进行正则校验,不通过则抛出错误。

    var testPassword = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!#@*&.])[a-zA-Z\d!#@*&.]*$/

这段代码是密码是校验目标内容是否包含大写字母、小写字母、数字、特殊符号。必须四种都有才会校验通过。

要是业务需要三种就行可以改下这块内容,大家根据自己的需求来就行。

看到这里就点个赞吧!

js判断密码是否包含数字、大写字母、小写字母、特殊符号相关推荐

  1. js正则表达式:密码至少8位,要求必须字母、数字加英文符号

    分享一个js正则表达式:密码至少8位,要求必须字母.数字加英文符号(不包含空格) var reg= /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$/ ; Jav ...

  2. 密码的自动生成器:密码由大写字母/小写字母/数字组成,生成12位随机密码

    package arithmetic;import java.util.Random;public class Test04 {/*** 密码的自动生成器:密码由大写字母/小写字母/数字组成,生成12 ...

  3. java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字_灵思致远Leansmall的博客-CSDN博客_java判断字符串只包含数字字母

    import java.util.regex.Matcher; import java.util.regex.Pattern;public class StrValidate {// 纯数字priva ...

  4. JS实现数字字母混合验证码(数字+大写字母+小写字母)

    我之前写了一篇<JS实现随机验证码>,可以产生随机数字.随机颜色.随机位置,但只能产生数字验证码,今天在此基础上进行改进,使之可以随机大写字母.小写字母.数字三种类型. 思路 我们使用Ma ...

  5. python 长度为8-10位的用户密码 : 包含数字字母下划线 正则表达式(简单易懂,代码可以指运行)

    python 长度为8-10位的用户密码 : 包含数字字母下划线 正则表达式(简单易懂,代码可以指运行) 用\w,[0-9a-zA-Z_]都可以匹配上去嗷~~,直接上代码: #匹配8-10位用户密码: ...

  6. js判断html密码,JS判断密码强度 - KG-鲜血、汗水和眼泪 - OSCHINA - 中文开源技术交流社区...

    JS判断密码强度 //判断输入密码的类型 function CharMode(iN){ if (iN>=48 && iN <=57) //数字 return 1; if ( ...

  7. Js判断是否为非数字

    Js判断是否为非数字 1.使用isNaN()函数 isNaN()的缺点就在于 null.空格以及空串会被按照0来处理 function isRealNum(val){// isNaN()函数 把空串 ...

  8. (C语言)(用指针方法处理)输入一行文字,找出其中大写字母,小写字母,空格,数字以及其他字符各有多少

    (用指针方法处理)输入一行文字,找出其中大写字母,小写字母,空格,数字以及其他字符各有多少 #include<stdio.h> #include<stdlib.h> #incl ...

  9. 设置密码8-16位大写字母+小写字母+数字+特殊字符

    我的这个效果是结合element UI的样式显示的,大家主要看函数里边对应的实现方法 主要的js代码: var validatePass = (rule, value, callback) => ...

最新文章

  1. 好莱坞科幻新片《b》,钦定 AI 机器人出演女主角!
  2. 想成为一个数据科学家却不知道从何下手?这份路线图带你打开数据科学大门!...
  3. 【Python SQLAlchemy】数据库连接池SQLAlchemy中多线程安全的问题
  4. windows mysqldump 不成功 1049 1064 报错
  5. 值得玩味儿的14个Python编程小技巧
  6. 2017-2018-1 20155234 《信息安全系统设计基础》第13周学习总结
  7. 阿里天池_优秀策略答辩PPT和相关博客
  8. 使用FCKeditor2.2图片上传的小技巧
  9. 软件定义重划边界——IT就是把复杂东西简单化
  10. java日期加一天_Java 关于日期加一天(日期往后多一天)
  11. Ubuntu18.04下使用docker制作ubuntu20.04镜像
  12. keil中 code、data、idata的区别
  13. 为什么快速排序比归并排序快
  14. day02数据类型方法整理
  15. vue项目中使用特殊字体
  16. 【问】安装SQLserver2000 SP4补丁报错提示0*80070005.程序未能注册
  17. GStreamer修改解码器默认优先级
  18. java sort 没法用,$ group无法使用Spring聚合类后的$ sort管道
  19. 隐形的翅膀-张韶涵 (歌词)
  20. if函数多个条件php,excelif函数的多个条件使用方法

热门文章

  1. 【Python篇】拟牛顿法面面俱到(一)--牛顿插值法
  2. Java部分集合以及部分常用类
  3. 切比雪夫不等式证明及应用
  4. 本地blast详细用法
  5. [JAVA]用数学解释数组移步问题(新增对链表移步的解释)
  6. 163邮箱开启SMTP权限
  7. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读
  8. Pandas复习笔记--自用
  9. python字典修改键所对应值_详解如何修改python中字典的键和值
  10. 还不了解,日志框架吗?