加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式验证密码

发布时间:2020-12-14 06:44:06 所属栏目:百科 来源:网络整理
导读:要求:密码必须符合由数字,大写字母,小写字母,至少其中两种组成,且长度不小于8,同时第一位不能为数字。如果密码符合 ,返回”YES”,否则,返回”NO”。 代码如下: function isPassword (s) { if ( typeof ( parseInt (s[ 0 ]))== 'number' ) return "NO"

要求:密码必须符合由数字,大写字母,小写字母,至少其中两种组成,且长度不小于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-Zd]+$)(?![A-ZW]+$)(?![a-zd]+$)(?![a-zW]+$)(?![dW]+$)S{8,20}$

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读