【发布时间】:2020-05-09 00:58:40
【问题描述】:
有人能告诉我为什么这里没有 \D 代码就不能工作吗?我需要在 pwRegex 中使用前瞻来匹配长度大于 5 个字符、不以数字开头且具有两个连续数字的密码。
let sampleWord = "abc123";
var pwRegex = /^\D(?=\w{5})(?=\w*\d{2})/;
let result = pwRegex.test(sampleWord); //true
谢谢!
【问题讨论】:
-
do not begin with numbers,^\D匹配任何字符,但不匹配数字。您也可以使用[^\d]而不是\D -
如果已经有 \w,为什么还要使用 \w*?
-
have two consecutive digits-(?=\w*\d{2})确保字符串必须包含两个连续的数字,无论其位置如何。如果我们从前瞻中删除\w*,则意味着第一个非数字字符后面必须跟着两个连续的数字。 -
为什么我不能接受你的回答?你和programmerRaj是同一个Raj吗?
-
不,您不能接受 cmets。只需接受另一个 Raj 的回答 :-)
标签: javascript regex regex-lookarounds