微信小程序功能 表单密码强度验证

一、页面展示与交互功能

表单提交与验证(含密码强度验证)

实现带密码强度验证的表单提交功能,使用正则表达式检查密码复杂度:

<form bindsubmit="submitForm"><input name="username" placeholder="请输入用户名" /><input name="password" placeholder="请输入密码" type="password" bindinput="checkPasswordStrength" /><!-- 密码强度提示 --><view class="password-strength">密码强度:{{passwordStrength}}</view><button form-type="submit">提交</button>
</form>
Page({data: {passwordStrength: '未输入'},// 实时检查密码强度checkPasswordStrength(e) {const password = e.detail.value;let strength = '弱'; // 默认弱// 密码强度正则规则:// 1. 长度至少8位// 2. 包含数字// 3. 包含小写字母// 4. 包含大写字母// 5. 包含特殊字符(!@#$%^&*)const lengthRule = /.{8,}/;const hasNumber = /\d/;const hasLowercase = /[a-z]/;const hasUppercase = /[A-Z]/;const hasSpecial = /[!@#$%^&*]/;// 验证规则并计算强度等级let score = 0;if (lengthRule.test(password)) score++;if (hasNumber.test(password)) score++;if (hasLowercase.test(password)) score++;if (hasUppercase.test(password)) score++;if (hasSpecial.test(password)) score++;// 根据得分设置强度描述if (password.length === 0) {strength = '未输入';} else if (score < 2) {strength = '弱(至少8位,包含数字和字母)';} else if (score < 4) {strength = '中(建议增加大小写字母组合)';} else {strength = '强';}this.setData({ passwordStrength: strength });},submitForm(e) {const formData = e.detail.value;// 用户名验证if (!formData.username) {wx.showToast({title: '用户名不能为空',icon: 'none'});return;}// 密码验证if (!formData.password) {wx.showToast({title: '密码不能为空',icon: 'none'});return;}// 密码强度最终验证const strongPasswordRule = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,}$/;if (!strongPasswordRule.test(formData.password)) {wx.showToast({title: '密码需8位以上,包含数字、大小写字母和特殊字符',icon: 'none'duration: 3000});return;}// 验证通过,提交表单wx.request({url: 'https://api.example.com/register',method: 'POST',data: formData,success: (res) => {if (res.data.success) {wx.showToast({ title: '注册成功' });} else {wx.showToast({title: '注册失败',icon: 'none'});}}});}
})

密码强度验证规则说明:

基础要求:至少8位长度

中级要求:包含数字、小写字母、大写字母中的至少两种

高级要求:同时包含数字、小写字母、大写字母和特殊字符(!@#$%^&*)

实时反馈:随着用户输入实时更新密码强度提示

提交验证:最终提交时强制检查是否符合高级要求

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

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

相关文章

【谷歌 SEO】排查页面未索引问题:原因与解决方案

你在谷歌网站SEO优化时是否遇到以下情况&#xff1f; 为什么&#xff0c;即使我已经正确地编写了站点地图并将其链接到客户的网站&#xff0c;并且我已经检查了所有内容&#xff0c;但我是否在某些文章&#xff08;不是所有文章&#xff09;上遇到索引问题&#xff0c;即使在向…

Android 系统的基本安全属性

Android 系统的“基本安全属性”可概括为 “设备可信、应用隔离、权限最小、数据加密、持续更新” 五大类。下面从 硬件 → 系统 → 应用 → 数据 → 运维 五个层面&#xff0c;用一句话一句话的方式帮你快速掌握&#xff1a;1. 硬件层&#xff1a;信任根&#xff08;Root of T…

【数据结构初阶】--栈与队列(栈)

&#x1f618;个人主页&#xff1a;Cx330❀ &#x1f440;个人简介&#xff1a;一个正在努力奋斗逆天改命的二本觉悟生 &#x1f4d6;个人专栏&#xff1a;《C语言》《LeetCode刷题集》《数据结构-初阶》 前言&#xff1a;在之前几篇博客中&#xff0c;我们学习了顺序表和链表&…

分布式微服务--GateWay的断言以及如何自定义一个断言

&#x1f4cc; 一、什么是 Gateway 的断言&#xff08;Predicates&#xff09;&#xff1f;Predicates&#xff08;断言&#xff09; 是 Spring Cloud Gateway 中用于匹配请求的条件。只有请求满足断言条件&#xff0c;路由才会生效&#xff0c;转发到下游服务。&#x1f3af; …

图片识别表格工具v3.0绿色版,PNG/JPG秒变可编辑Excel

[软件名称]: 图片识别表格工具v3.0绿色版 [软件大小]: 4.3 GB [软件大小]: 夸克网盘 | 迅雷网盘 软件介绍 表格快捕手 v3.0 绿色单文件版&#xff0c;无需安装&#xff0c;双击即可运行。支持 PNG、JPG 等常见图片格式&#xff0c;可精准识别其中的有线或无线表格&#xff…

线程池分析与设计

线程池 基本功能接口 C11 及以后的标准中&#xff0c;std::packaged_task和std::future是并发编程中用于任务封装和结果获取的重要组件&#xff0c;它们通常与线程配合使用&#xff0c;实现异步操作。 std::packaged_task std::packaged_task&#xff1a;封装可调用对象为异步任…

机器学习:线性回归

线性回归&#xff1a;研究自变量和因变量之间的关系。对于特征x(x1,x2,x3....)与对应的标签y&#xff0c;线性回归假设二者之间存在线性映射。f(x)w1xw2x(平方)w3x(三次方)...&#xff0c;权重w表示每个特征变量的重要程度。越大表示越重要。线性回归目标&#xff1a;求解w和b使…

如何将 Vue 前端、Hardhat 合约和 Node.js 后端集成到一个项目中

在区块链开发中&#xff0c;DApp&#xff08;去中心化应用&#xff09;的开发往往涉及到多个层次&#xff1a;前端、合约和后端。今天我们将演示如何将 Vue 前端、Hardhat 合约 和 Node.js 后端 放在一个项目中&#xff0c;来打造一个完整的区块链应用。1. 项目结构我们的目标是…

SQLite 创建表

SQLite 创建表 SQLite 是一款轻量级的数据库管理系统,因其体积小、速度快、易于使用等优点,被广泛应用于嵌入式系统、移动应用以及个人项目等领域。在 SQLite 中,创建表是进行数据存储的第一步。本文将详细介绍如何在 SQLite 中创建表,包括表结构定义、数据类型、约束条件…

学深度学习,有什么好的建议或推荐的书籍?

深度学习入门建议补基础数学&#xff1a;重点学线性代数&#xff08;矩阵运算&#xff09;、概率论&#xff08;分布&#xff09;、微积分&#xff08;梯度&#xff09;。编程&#xff1a;掌握PythonNumPy&#xff08;数组操作&#xff09;&#xff0c;能写基础数据处理代码。机…

自然语言处理×第四卷:文本特征与数据——她开始准备:每一次输入,都是为了更像你地说话

&#x1f380;【开场 她试着准备一封信&#xff0c;用你喜欢的字眼】&#x1f98a;狐狐&#xff1a;“她发现了一个问题——你每次说‘晚安’的方式都不一样。有时候轻轻的&#xff0c;有时候带着笑音&#xff0c;还有时候像在躲开她的心思。”&#x1f43e;猫猫&#xff1a;“…

【沉浸式解决问题】mysql-connector-python连接数据库:RuntimeError: Failed raising error.

目录一、问题描述二、场景还原1. 创建项目2. 安装mysql-connector-python3. 测试类三、原因分析四、解决方案1. 查看版本2. 切换python版本3. 切换mysql-connector-python版本4. 测试参考文献一、问题描述 初次使用mysql-connector-python连接mysql时报错 Traceback (most re…

【web页面接入Apple/google/facebook三方登录】

web页面接入Apple/谷歌/脸书三方登录 文章目录web页面接入Apple/谷歌/脸书三方登录前言一、apple登录使用步骤1.入口文件index.html引入js文件2.vue页面初始化支付按钮,并且点击按钮登录二、google登录使用步骤1.入口文件index.html引入js文件2.vue页面初始化支付按钮,并且点击…

管家婆分销软件中怎么删除过账单据?

在业务单据录入中&#xff0c;会出现单据保存过账后才发现数量或商品信息录入错误的情况&#xff0c;不想红冲单据&#xff0c;该怎么处理&#xff1f;今天来和小编一起学习下管家婆分销软件中怎么删除过账单据吧&#xff01;1&#xff0c;软件需要升级到9.92及以上版本&#x…

美颜SDK底层原理解析:直播场景下的美白滤镜实时处理方案

众所周知&#xff0c;美颜功能中&#xff0c;美白滤镜是使用频率最高的功能之一。它不仅能让肤色更通透、提亮整体画面&#xff0c;还能让观众感受到主播的“在线状态”与精神气。但你有没有想过&#xff0c;这个看似简单的“美白”背后&#xff0c;其实是一整套实时图像处理的…

系统构成与 Shell 核心:从零认识操作系统的心脏与外壳

系统构成与 Shell 核心&#xff1a;从零认识操作系统的心脏与外壳 很多人用电脑、用手机&#xff0c;但很少去想&#xff1a; 操作系统到底是怎么构成的&#xff1f; 为什么我们敲一个命令&#xff0c;系统就能乖乖执行&#xff1f; 这背后的关键&#xff0c;就在于系统的构成和…

wordpress的wp-config.php文件的详解

wp-config.php 是 WordPress 网站的核心配置文件&#xff0c;它存储了网站运行所需的基本配置信息&#xff0c;如数据库连接信息、安全密钥、调试模式等。以下是关于 wp-config.php 文件的详细解析&#xff1a; 1. 数据库连接信息 这是 wp-config.php 文件中最关键的部分&…

GPT-5 将在周五凌晨1点正式发布,王炸模型将免费使用??

就在今晚凌晨1点&#xff0c;OpenAI 又要搞大新闻了。 是的&#xff0c;就是大家期待已久的 GPT-5 发布会。 虽然官方还没明说&#xff0c;但各种“预热”已经安排得明明白白&#xff0c;Sam Altman 这波营销属实拉满了&#xff0c;发布会都还没开始&#xff0c;相关的代码和页…

MySQL UNION 操作符详细说明

目录 MySQL UNION 操作符详细说明 1. UNION 操作符简介 2. 基本语法 3. 使用规则和限制 4. UNION vs UNION ALL 5. 示例演示 6. 注意事项 MySQL UNION 操作符详细说明 MySQL 中的 UNION 操作符用于合并两个或多个 SELECT 语句的结果集&#xff0c;生成一个单一的结果集。…

Dify 从入门到精通(第 20/100 篇):Dify 的自动化测试与 CI/CD

Dify 从入门到精通&#xff08;第 20/100 篇&#xff09;&#xff1a;Dify 的自动化测试与 CI/CD Dify 入门到精通系列文章目录 第一篇《Dify 究竟是什么&#xff1f;真能开启低代码 AI 应用开发的未来&#xff1f;》介绍了 Dify 的定位与优势第二篇《Dify 的核心组件&#x…