【正则表达式】 校验密码大小写,数字,特殊符号且必须包含两种或以上

通常用来做登陆密码校验

/ let regx = /(?!^\d+$)(?!^[A-Za-z]+$)(?!^[^A-Za-z0-9]+$)(?!^.*[\u4E00-\u9FA5].*$)^\S{6,18}$/; //支持所有符号 (包含汉字)
// let regx = /^(?=.*\d)(?=.*[a-zA-Z])[\da-zA-Z~!@#$%^&*]{6,18}$/; // 包含数字、英文字母、特殊符号可有可无,6-18位(特殊符号包括: ~!@#$%^&*)
// let regx = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{6,18}$/; // 必须包含数字、英文字母、特殊符号且大于等于8位(特殊符号包括: ~!@#$%^&*)
// let regx =  /^(?=.*?[a-z])(?=.*?\d)(?=.*?[~!@#$%^&*])[a-zA-Z\d!#@*&.]{6,18}$/; // 包含大写字母、小写字母、数字、特殊符号。必须四种都有才会校验通过。
let regx = /^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$)(?![~!@#$%^&*.]+$)[\da-zA-z~!@#$%^&*.]{6,16}$/; // 数字、大写字母、小写字母、特殊字符(~!@#$%^&*.)包含两种以上
console.log(regx.test(e));
在前端校验用户修改密码时,我们需要确保新密码符合一定的复杂度要求,以增强账户的安全性。具体来说,可以要求用户输入的密码满足以下条件: 1. 密码长度至少为6位。这保证了密码有足够的长度来抵抗简单的猜测攻击。 2. 必须包含大小写字母。这样可以增加密码的复杂度,因为密码中需要包含小写的a-z以及大写的A-Z。 3. 必须包含数字数字0-9的加入为密码提供了更多的组合可能。 4. 必须包含特殊字符。特殊字符包括各种标点符号和其他非字母数字的字符,它们可以进一步增加密码的强度。 正则表达式是进行这种校验的有效工具,它能够通过一种特定的模式来匹配字符串。以下是一个简单的正则表达式示例,用于匹配满足上述要求的密码: ```javascript /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,}$/ ``` 这个正则表达式解释如下: - `^` 表示匹配输入字符串的开始位置。 - `(?=.*[a-z])` 确保至少有一个小写字母。 - `(?=.*[A-Z])` 确保至少有一个大写字母。 - `(?=.*\d)` 确保至少有一个数字。 - `(?=.*[@$!%*?&])` 确保至少有一个特殊字符(这里只列出了一部分常见的特殊字符,可以根据需要添加更多)。 - `[A-Za-z\d@$!%*?&]{6,}` 表示密码长度至少为6个字符,并且字符可以是大小写字母、数字或特殊字符。 - `$` 表示匹配输入字符串的结束位置。 关于重置密码时对输入的两个密码做对比,通常的做法是在用户输入两次新密码后,通过JavaScript比较这两个输入值是否一致。如果两个密码不匹配,则可以提示用户密码不一致,并要求重新输入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值