我正在使用正则表达式来匹配长度超过5个字符并且在JavaScript中具有两个连续数字的密码。
我使用先行尝试了两种不同的方法,第一种方法返回false,而第二种方法返回true。
代码如下:
let sampleWord = "abc123";
let pwRegex = /(?=\w{5,})(?=\d{2,})/; //returns false
let result = pwRegex.test(sampleWord);
console.log(result);
let sampleWord = "abc123";
let pwRegex = /(?=\w{5,})(?=\D*\d{2,})/; //returns true
let result = pwRegex.test(sampleWord);
console.log(result);
唯一的区别是第二个也有\D*
。据我所知,它会检查出现0次或多次的非数字值。但是为什么在这种情况下需要它?
P.S。这是FreeCodeCamp.org学习正则表达式的挑战的一部分