【发布时间】:2017-01-05 02:10:27
【问题描述】:
我尝试强制用户输入包含准确字符数的密码。 密码必须是这样的: 共 8 颗 : 1(完全)大写, 3(确切)数字 和小写(在这种情况下为 4 个)。
我的正则表达式:(?=.*[a-z])(?=.*[A-Z]{1})(?=.*[0-9]{3})
问题是我们可以放置超过 3 个 numb,超过 1 个,超过 8 个 caract..
例子:
- 5p23qPsb -> 好的
- I9Opdi90 -> 不行
- h7y1Rdw6 -> 好的
- IUD8954r -> 不行
一个想法或一些帮助? 谢谢(我是法国人,很抱歉我的英语......)
【问题讨论】:
-
我将通过“手动”分析脚本中的密码来替换正则表达式。喜欢:计算大写字母、计算数字等(我没有将这个示例作为答案发布,因为您明确要求在标题中使用正则表达式的解决方案。)
-
[0-9]{3}表示连续三位而不是总共三位。 -
这是一个很好的解决方案,谢谢,
-
不要对这个任务使用正则表达式,只需使用 senden9 的方法。
s.match(/[a-z]/g).length == 4 && s.match(/[A-Z]/g).length == 1 && s.match(/\d/g).length之类的东西(添加错误检查)。 -
布莱赫。这似乎是正则表达式适合的那种事情。你有一个字符串,你想确保它匹配某种格式。您不必贬低它们。
标签: javascript regex