javascript - 来自 freeCodeCamp 的“正负前瞻”问题
问题描述
我正在考虑来自 freeCodeCamp 的这个问题。这是链接:正则表达式:正负前瞻
挑战:在 pwRegex 中使用前瞻来匹配长度大于 5 个字符、不以数字开头且具有两个连续数字的密码。
let sampleWord = "astronaut"; let pwRegex = // Change this line result = pwRegex.test(sampleWord);
首先,该站点显示的模型答案是;
/^\D(?=\w{5})(?=\w*\d{2})/;
这是我的问题;
为什么 5 后不需要逗号?
问题是“长度超过 5 个字符”,所以我认为应该是 {5,},而不是 {5}。如何提前检查连续数字?
我认为“(?= \ w * \ d {2})”部分不足以检查连续数字。我在我的 chrome 控制台上尝试了以下代码,let mytest ="pass75"; let Regex = /^\D(?=\w{5,})(?=\w*\d{2})/; //This is the site's model answer. Regex.test(mytest); //=>True
“7”和“5”不是连续的数字,但它说的是真的,所以我认为这个模型答案并不完整。你怎么看?有没有人可以解释如何解决这个问题?
解决方案
我就是这样解决的!记住长度大于(不 >=) 5 个字符的匹配密码。休息在代码中是完全自我解释的。
let sampleWord = "astronaut";
let pwRegex = /(?=\w{6,})(?=.*\d{2,}.*)/; // Change this line
let result = pwRegex.test(sampleWord);
推荐阅读
- javascript - 如何限制在 react js 的输入类型编号字段中输入多个点?
- python - UnboundLocalError:局部变量“x”
- sails.js - Sails.JS 模型无法全局访问,即使 Globals.JS 包含模型:true
- angular - url参数错误时如何触发通配符路由?
- java - IntelliJ 在我的有效字符串上报告“非法十六进制转义序列”
- javascript - Zapier - Catch Hook - JSON 数组 - 遍历数组中的每个项目
- html - 如何从nodejs创建和存储html页面?
- java - Java TextArea 和 JLabel 在单独的一行
- ios - iOS 11:如何获取基于云的文件的位置(文件提供者)名称?
- python - 将具有相同ID的多行(具有一些非字符串值)合并到熊猫中的一个分隔行中