Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 密码验证码没有通过每次随机测试,不明白为什么?_Javascript_Regex_String_Validation - Fatal编程技术网

Javascript 密码验证码没有通过每次随机测试,不明白为什么?

Javascript 密码验证码没有通过每次随机测试,不明白为什么?,javascript,regex,string,validation,Javascript,Regex,String,Validation,我对编码/编程是新手,一直在尝试在codewars.com上尽可能多地解决问题 我遇到了以下regex pw验证问题 您需要编写用于验证密码的正则表达式,以确保密码满足以下条件: 至少六个字符长 包含小写字母 包含大写字母 包含一个数字 有效密码将仅为字母数字字符 这是我的密码 function validate(password){ return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.{6,}).*/g.test(password)); } 我通

我对编码/编程是新手,一直在尝试在codewars.com上尽可能多地解决问题

我遇到了以下regex pw验证问题

您需要编写用于验证密码的正则表达式,以确保密码满足以下条件:

至少六个字符长
包含小写字母
包含大写字母
包含一个数字
有效密码将仅为字母数字字符

这是我的密码

function validate(password){
  return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.{6,}).*/g.test(password));
}

我通过了所有的样本测试和大部分随机测试,但有两个我一直不及格。我无法看到输入,因此我不知道为什么我会失败。非常感谢您的建议:)

您没有遵守此规则:

有效密码将仅为字母数字字符


只要其他规则通过,就允许它们包含任何字符。将末尾的
*
更改为
^[a-zA-Z0-9]*$
,以确保每个字符都是字母数字。

我发现您的正则表达式有一个问题:它允许密码中包含
任何
字符(在它检查了一个小写、一个大写和一个数字之后)。
在不知道测试失败原因的情况下,我们至少可以解决此问题:

function validate(password){
  return (/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{6,}*/.test(password));
}

哪些测试失败?当我点击尝试按钮时,是第7次和第8次测试。我知道您要求的字符串失败,但不幸的是,我看不到它们。它只是说我没有通过(或通过)测试。删除
g
标志。嗨,为什么删除g标志会更好?哪些测试会失败?-密码中不允许使用所有字符-此正则表达式测试大小写、数字和(?=.{6,})捕获(/.\?等),并设置最小6个字符-您可以使用好的问题检查您的正则表达式,我从问题中复制,现在已编辑。感谢您的回答,这确实是个问题。非常感谢您的帮助,我通过了测试。请你解释一下我为什么不及格好吗?什么类型的字符在JS中不被视为字母数字?“^Y.D”的意思是吗?@Y.D您的正则表达式将接受
Test123
,其中
不是字母数字字符。@Ivar谢谢您的澄清,我已经尝试解决这个问题一段时间了。