现在有一个匹配问题,匹配密码,必须包含大写,小写和数字,和特殊字符(!,@,#,%,&),且大于6位。
先看明白要匹配的条件,必须包含大写、小写、数字和特殊字符,但是出现的顺序没有规定,只要包含有就行,一般的正则表达式都是按顺序来进行匹配的,所以有什么办法可以解决这个没有顺序的匹配呢,或者说有什么匹配机制可以每次匹配完,又重新从头开始进行下一次匹配呢?前瞻就可以。
1.前瞻表达式
在正则表达式当中有个东西叫做前瞻,有的管它叫零宽断言:
| 表达式 | 名称 | 描述 |
|---|---|---|
| (?=exp) | 正向前瞻 | 匹配后面满足表达式exp的位置 |
| (?!exp) | 负向前瞻 | 匹配后面不满足表达式exp的位置 |
我们来看看前瞻的作用:
var str = 'Hello, Hi, I am Hilary.'; // 后面一定要匹配什么 var reg = /H(?=i)/g; var newStr = str.replace(reg, "T"); console.log(newStr);//Hello, Ti, I am Tilary.
在这个DEMO中我们可以看出正向前瞻的作用,同样是字符"H",但是只匹配"H"后面紧跟"i"的"H"。就相当于有一家公司reg,这时候有多名"H"人员前来应聘,但是reg公司提出了一个硬条件是必须掌握"i"这项技能,所以"Hello"就自然的被淘汰掉了。
以上内容摘至 :

本文探讨如何使用前瞻正则表达式解决密码匹配问题,无需顺序限制,确保密码至少包含大写、小写、数字和特殊字符,同时满足长度要求。通过实例演示了前瞻在密码验证中的应用。
最低0.47元/天 解锁文章
1853

被折叠的 条评论
为什么被折叠?



