正则表达式验证密码

要求:密码必须符合由数字,大写字母,小写字母,至少其中两种组成,且长度不小于8,同时第一位不能为数字。如果密码符合 ,返回”YES”,否则,返回”NO”。
代码如下:

function  isPassword(s){
    if(typeof(parseInt(s[0]))=='number') return "NO";
    var reg=/^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)\S{8,}$/;
   var result=reg.test(s);
if(result=="true")
    return "YES";
}
var s="0ssssssss";
var t=isPassword(s);

说明: (?![A-Z]+$)

A-Z+$ 从当前位置到结尾全是大写字母
!A-Z+$ 匹配不全是大写字母组成的字符串
(?![A-Z+$]) 如果从当前匹配位置开始到结尾是一个不全是大写字母组成的字符串,就匹配它,否则匹配位置保持不变,执行接下来的匹配表达式。
\S{8,}匹配任何可见字符组成的字符串,并且长度不小于8。

举个列子来说:
有一个字符串 ABCDEFG
如果以^(?![A-Z]+$)ABC去匹配这个串,那么过程是这样的:
1 、先用(?![A-Z+$])去匹配它,匹配位置是从A开始 ,从A扫描到结尾G,发现这个字符串全是由大写字母组成的,不符合规则,就不匹配它,重新回到A,
2、再执行ABC这个匹配,最后输出ABC

要求:设置密码必须符合由数字,大写字母,小写字母,特殊符,至少其中三种组成密码。
那么正则就要设置如下:
^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z\\W]+$)(?![a-z\\d]+$)(?![a-z\\W]+$)(?![\\d\\W]+$)\\S{8,20}$

[A-Za-z]+$ 表示字符串是由大写字母和小写字母组成
![A-Za-z]+$ 表示字符串不全是大写字母和小写字母组成
(?![A-Za-z]+$)表示如果从当前匹配位置开始到结尾是一个不全是大写字母和小写字母组成的字符串,就匹配,否则匹配位置保持不变,执行接下来的表达式
(?![A-Z\\W]+$) 表示如果从当前匹配位置开始到结尾是一个不全是大写字母和特殊字符组成的字符串,就匹配,否则匹配位置保持不变,执行接下来的表达式

密码强度可以通过正则表达式进行验证。根据引用中提供的正则表达式,可以分为强、中和弱三个级别。 强密码正则表达式是: ^(?=.{8,})(?=.*,一个小写字母[a-z,一个数字,和一个非单词字符的特殊字符。 中密码正则表达式是: ^(?=.{7,})(((?=.*和一个小写字母[a-z,或者一个大写字母[A-Z和一个数字,或者一个小写字母[a-z和一个数字。 弱密码正则表达式是: ^(?=.{6,}).*$ 它要求密码长度至少为6位,可以是任何字符或数字。 这样,根据正则表达式的匹配结果,可以判断密码的强度。越多的规则被满足,密码的安全性越高,如引用所述。因此,网站可以根据用户输入的密码进行正则表达式的匹配,从而提供密码强度的说明,提醒用户使用高强度的密码,如引用所述。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [密码强度 弱 中 强 正则表达式判断](https://blog.csdn.net/shi851051279/article/details/79992228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [正则表达式资源](https://blog.csdn.net/aem8660/article/details/101510483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值