我是编码/编程的新手,并且一直在尝试尽可能多地解决codewars.com上的问题
我遇到了以下regex pw验证问题 https://www.codewars.com/kata/regex-password-validation/train/javascript
您需要编写用于验证密码的正则表达式,以确保其符合以下条件:
至少六个字符长
包含小写字母
包含大写字母
包含一个数字
有效密码只能是字母数字字符。
这是我的代码
function validate(password){
return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.{6,}).*/g.test(password));
}
我通过了所有示例测试以及大多数随机测试,但是有两个我一直失败。我无法看到输入,因此我不知道为什么我失败了。任何建议都将不胜感激:)
答案 0 :(得分:1)
您没有遵循此规则:
有效密码只能是字母数字字符
只要其他规则通过,您就允许它们包含任何字符。将末尾的.*
更改为^[a-zA-Z0-9]*$
,以确保每个字符都是字母数字。
答案 1 :(得分:0)
我看到您的Regex有一个问题:它允许any
个字符输入密码(在检查是否有一个小写字母,一个大写字母和一个数字之后)。
不知道为什么测试失败,我们至少可以解决此问题:
function validate(password){
return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{6,}*/.test(password));
}