vue登录密码强度校验

vue实现密码强度校验 阅读详情

在这里插入图片描述

<template>
    <div>
        <el-form ref="psdform" :model="form" :rules="rules" label-width="120px">
            <el-form-item label="新密码:" prop="newPassword">
                <el-input
                :type="newPsdtype"
                v-model="form.newPassword"
                placeholder="8-16位密码,区分大小写"
                >
                    <span slot="suffix" class="show_pwd" @click="showPwd">
                        <svg-icon
                        :icon-class="newPsdtype == 'password' ? 'eye' : 'eye-open'"
                        />
                    </span>
                </el-input>

                <div class="intensity">
                    <span class="psdText">密码强度</span>
                    <span
                        class="line"
                        :class="[level.includes('low') ? 'low' : '']"
                    ></span>
                    <span
                        class="line"
                        :class="[level.includes('middle') ? 'middle' : '']"
                    ></span>
                    <span
                        class="line"
                        :class="[level.includes('high') ? 'high' : '']"
                    ></span>
                    <div class="warningtext">
                        密码应由8-16位数字、字母、符号组成。请不要使用容易被猜到的密码
                    </div>
                </div>
            </el-form-item>
            <el-form-item label="确认密码:" prop="confirmPassword">
                <el-input
                :type="confirmPsdtype"
                v-model="form.confirmPassword"
                placeholder="确认密码"
                >
                <span slot="suffix" class="show_pwd" @click="showconfirmPwd">
                    <svg-icon
                    :icon-class="confirmPsdtype == 'password' ? 'eye' : 'eye-open'"
                    /> </span
                 ></el-input>
            </el-form-item>
        </el-form>
    </div>

</template>
<script>
export default {
    data() {
        return {
        form: {
            newPassword: '',
            confirmPassword: ''
        },
        rules: {
            newPassword: [
            { required: true, validator: this.checkPassword, trigger: 'change' }
            ],
            confirmPassword: [
            {
                required: true,
                validator: this.checkConfirmPassword,
                trigger: 'blur'
            }
            ],
        },
        level: []
        }
  },
  methods: {
        //点击小眼睛
        showPwd() {
            if (this.newPsdtype === 'password') {
                this.newPsdtype = ''
            } else {
                this.newPsdtype = 'password'
            }
        },
        //点击小眼睛
        showconfirmPwd() {
            if (this.confirmPsdtype === 'password') {
                this.confirmPsdtype = ''
            } else {
                this.confirmPsdtype = 'password'
            }
        },
        // 校验密码
        checkPassword(rule, value, callback) {
            this.level = []
            if (!value) {
                return callback('密码不能为空')
            }
            if (value.length < 8) {
                return callback('密码不少于8位')
            }
            if (value.length > 16) {
                return callback('密码不大于16位')
            }
            // 校验是数字
            const regex1 = /^\d+$/
            // 校验字母
            const regex2 = /^[A-Za-z]+$/
            // 校验符号
            const regex3 =
            /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]+$/
            if (regex1.test(value)) {
                this.level.push('low')
            } else if (regex2.test(value)) {
                this.level.push('low')
            } else if (regex3.test(value)) {
                this.level.push('low')
            } else if (/^[A-Za-z\d]+$/.test(value)) {
                this.level.push('low')
                this.level.push('middle')
            } else if (
                /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、\d]+$/.test(
                    value
                )
            ) {
                this.level.push('low')
                this.level.push('middle')
            } else if (
                /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、A-Za-z]+$/.test(
                    value
                )
            ) {
                this.level.push('low')
                this.level.push('middle')
            } else if (
                /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、A-Za-z\d]+$/.test(
                    value
                )
            ) {
            this.level.push('low')
            this.level.push('middle')
            this.level.push('high')
            }
            return callback()
        },
        // 确认密码
        checkConfirmPassword(rule, value, callback) {
            if (!value) {
                return callback('请输入确认密码')
            }
            if (value != this.form.newPassword) {
                return callback('两次密码输入不一致,请重新输入')
            }
        },
  }
}
</script>
<style>
.show_pwd {
  cursor: pointer;
  user-select: none;
  padding-right: 5px;
}
.intensity {
  
}
.psdText {
font-size: 14px;
margin-right: 10px;
}
.line {
display: inline-block;
width: 48px;
height: 4px;
background: #d8d8d8;
border-radius: 3px;
margin-right: 8px;
}
.low {
    background: #f4664a;
}
.middle {
    background: #ffb700;
}
.high {
    background: #2cbb79;
}
.level {
margin: 0 16px 0 8px;
}
.warningtext {
color: #5a5a5a;
font-size: 12px;
margin-top: 5px;
}


</style>

转自:https://blog.youkuaiyun.com/qq_45093219/article/details/125207932

前端vue中使用Element UI表单校验 及密码复杂度校验组件 在使用表单提交数据时,表单校验可对输入数据进行验证,保证输入数据的格式正确。 表单校验 <template> <div class="container"> <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" > 阅读详情

相关推荐

vue PasswordStrength密码强度组件

用于登录等表单中检验用户输入的密码强度。

风如白话的博客 1700

vue+element-plus 密码校验及动态校验

团队想给新系统的新建/修改用户、个人设置的修改密码中的密码输入框加一个密码校验。具体加什么校验,产品参考了几个增加密码复杂度的校验,比如不能输入连续的3个数字,这种校验,但是好像密码的复杂度并不能保证系统的安全性,好像邮箱验证会比较安全?虽然密码只防君子不妨小人,但是设置密码校验也只是避免用户输入过于简单的密码,比如:123,123456,111111这种。 针对我们这个项目,我们的密码校验规则是: 包含英文字母大小写、数字和特殊符号且在8到16位的任意组合

鹤渺的星球 7992

若依框架密码安全实战:手把手教你配置90天强制改密策略(附前后端完整代码)

本文详细介绍了如何在若依框架中实现企业级密码安全策略,包括90天强制改密、密码强度分级、历史记录检查及异常登录检测等核心功能。通过前后端完整代码示例,帮助开发者快速构建安全的密码管理体系,提升系统防护能力。

weixin_26642481的博客 311

vue 密码校验

【代码】vue 密码校验

future_1_的博客 981

若依框架实战:手把手教你给系统加上密码过期强制修改功能(附前后端完整代码)

本文详细介绍了如何在若依框架中实现密码过期强制修改功能,包括前后端完整代码实现。通过新增数据库字段、改造用户认证逻辑、增强前端拦截等步骤,确保用户密码安全合规。文章还提供了密码强度校验、路由拦截等关键技术解决方案,适合需要提升系统安全性的开发者参考。

weixin_28716443的博客 359

vue + jquery实现进度条提示密码强度效果【附全码】

vue如何实现密码强度校验?不会我教你呀。

**My Coding Family** 1762

AI辅助开发:让快马智能生成带安全验证的路由器手机登录界面

最近在做一个路由器管理后台的移动端登录页面,需要实现192.168.1.1这个常见路由器地址的手机端登录功能。而且平台内置的实时预览功能,让我可以随时查看修改效果,开发体验非常顺畅。如果你也想尝试这种开发方式,建议先从明确的需求描述开始,然后逐步细化AI生成的方案。AI不仅写出了代码,还添加了详细的注释,解释了每个安全考量的设计思路。AI很快理解了需求,并建议使用Vue3框架来实现,因为它的响应式特性很适合做实时验证。首先明确这个登录页面的核心需求:不仅要有基本的用户名密码输入,还需要做严格的安全验证。

IndigoNight21的博客 112

Vue3酒类品牌官网源码包:含登录注册、多页面展示与本地留言功能

直接可用的Vue3酒类品牌官网前端项目,包含用户登录、注册、首页酒品展示、十大名酒专题、行业新闻、联系我们及在线留言表单等完整页面。所有界面采用响应式设计,适配手机、平板和桌面端,UI风格简洁稳重,契合酒类品牌高端调性。项目基于Vite构建,src目录按功能模块划分,组件独立封装、命名清晰,支持快速替换图片、修改文案、调整布局。无需后端服务,留言数据通过localStorage本地暂存,开箱即用。已提供dist构建结果,双击index.html即可预览效果;配套README.md和readme.txt文档,

mongodb5scout的博客 273

登录,注册页面JavaScript,vue2和vue3,react通用表单验证

动态规则配置在登录模式下,我们通常不需要校验repassword(确认密码)。在函数中,通过传入参数来决定是否执行“密码一致性检查”。用户体验切换模式时:务必清空errors和formData,防止登录时的错误信息残留到注册页面,或者旧数据干扰新操作。实时反馈:在 React 和 Vue 3 示例中,我在onChange时清除了对应字段的错误,这样用户一旦开始修改,红字提示就会消失。密码强度使用了正则/(?!

前端大白话 444

【pprof】简要学习教程

基本介绍 pprof 是在做性能优化前的性能分析工具。 安装: go get -u github.com/google/pprof 分析工具 go tool pprof 是命令行指令,用于分析 Profiling 数据,源数据可以是 http 地址,也可以是已经 dump 下当 profile 文件;查看模式可以命令行交互模式,也可以是浏览器模式(-http 参数)。 两种应用 服务型应用 _ "net/http/pprof" 包,专用于采集 web 服务 运行数据的分析。即在运行的服务中通过 API .

码农印象 884

AEB(自动紧急制动)

AEB系统对静止物体的误判率受多种因素影响,包括传感器精度、算法复杂性以及环境条件等。通过多传感器融合、算法优化、硬件升级以及环境适应性增强等技术手段,可以有效减少误判问题。美国和欧洲的AEB法规均强调了技术性能和安全性,但具体要求有所不同。美国的NHTSA规定更注重高速和复杂场景下的紧急制动能力,而欧盟的ECE R152法规则更侧重于基础的AEB功能覆盖范围。

百态·数智思维 | 聚焦大数据、量化与未来AI 2550

js正则验证弱密码(大小写,特殊字符,数字不少于8位) element-plus 表单验证

前端对于弱口令的校验,包含大小写、数字、特殊字符中至少三种

jmszl1991的博客 6045

benders分解算法 逻辑思路整理(加星)

一般我们经常可以看到的是经典的benders,此处我也结合经典的benders梳理下思路。

sinat_41348401的博客 7986

Vue Element ui密码框校验

<el-form-item prop="repeat_Password" class="userName_color"> <el-input type="password" placeholder="请再次输入新密码" v-model="loginRuleForm.repeat_Password" ma...

Picasso_1990的博客 1239

RK3588开发板量产前必做:24小时DDR压力测试到底在测什么?(附ArmSoM-W3测试脚本解析)

本文深入解析RK3588开发板量产前的24小时DDR压力测试,揭示其核心价值与技术原理。通过memtester、stressapptest和变频测试的组合使用,全面验证DDR内存稳定性。特别介绍ArmSoM-W3测试脚本的创新设计,包括并行测试架构和异常熔断机制,为开发者提供可靠的量产测试方案。

weixin_30325487的博客 454

Hermes 教程 05:多 Agent 编排

本文介绍了Hermes v0.13.0中的四种多Agent协作模式:1)delegate_task快速子任务模式,适合2-3个独立并行任务;2)spawn子Agent模式,实现零成本并行多步流水线;3)tmux交互子Agent模式,支持长期自主任务;4)全新Kanban看板系统,提供持久化AI团队协作框架。各模式在隔离级别、时长、工具访问和适用场景上存在差异,其中spawn模式通过独立上下文窗口实现零上下文成本。文章详细说明了每种模式的使用方法、限制条件和典型应用场景,并提供了具体代码示例和可视化流程图。K

程序猿_三产 537

Vue后台系统登录密码强弱校验

需求描述:用户登录输入的密码较弱时(比如输入:123456),弹框提示修改密码。1、首先定义好弹框组件。

辽辽无期的博客 1274

第一百三十九回 介绍三个BLE包

本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。

talk_8的专栏 574

elementui表单密码强度自定义验证

密码强度如上图片 涉及到的相关正则表达式: export const PASSOWRD_REG_WEEK = /^[0-9]{6,8}$|^[A-Z]{6,8}$|^[a-z]{6,8}$|^[\W_!@#$%^&*`~()-+=]{6,8}$/; // eslint-disable-next-line no-control-regex export const PASSOWRD_REG_MIDDLE = /^(?!\d+$)(?![a-zA-Z]+$)[\da-zA-Z]{8,10}$|^(?!.

风如也的博客 3490

MIPI D-PHY TX 一致性测试实例解析 Part 01

汽车电子领域,尤其是ADAS,伴随着摄像头的大规模布局,MIPI信号的使用日益频繁,关于它的验证与分析工作也变得日益关键

一只豌豆象的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Vue组件登录页面,记得修改路径等信息

input type="password" v-model="confirmPassword" placeholder="确认密码" autocomplete="new-password" @input="validatePassword"><input type="password" v-model="password" placeholder="密码" autocomplete="new-password" @input="validatePassword">

shitiankongyimol的博客 879

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Vue密码颜色变更强度校验 (强中弱)

通过对输入的密码来进行三种情况的校验(弱、中、强),校验的结果组成一个数组进行过滤,为真的组成一个新数组,新数组的长度就是密码的强度。然后密码的强度(passwordStrength字段)来展示不同的css样式。charCodeAt方法可以返回指定位置的Unicode 编码,然后通过Unicode编码来判断。重点:强中弱三种的校验方法!// 判断是否包含字母。// 判断是否包含数字。// 是否含有特殊符号。...

m0_60746035的博客 1057

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

密码强度校验,vue

效果图 <template> <a-modal v-model="showModal" title="修改密码" @cancel="cancel"> <a-row> <a-form :form="form"> <a-form-item> <a-input-password v-decorator="[ 'vscode',

weixin_44191425的博客 1065

vue 代码强度校验

也可以抽离js部分代码,创建js文件,将js部分代码放到js文件中。样式可以自己调整,我是在登录之后再页面上写,使用样式没写。也可以加一个显示密码强度的进度条。

qq_64751323的博客 887

终极指南:Vue密码强度检测组件vue-password-strength-meter的完整使用教程

想要为你的Vue.js应用添加专业的密码强度检测功能吗?vue-password-strength-meter是一个基于zxcvbn算法的交互式密码强度检测组件,能够实时评估用户输入的密码安全等级,为你的应用提供更好的安全性保障。📈 ## 🔑 什么是vue-password-strength-meter? **vue-password-strength-meter**是一个专为Vue.js

gitblog_00390的博客 729
上一篇: echarts点击切换map地图时,显示切换成功了,但页面上的信息不变。echarts点击事件触发多次
下一篇: tp6+jwt实现token生成及验证,tp+vue请求接口header中加入token报跨域错误解决
if时光重来
博客等级 码龄8年 248粉丝 217原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值