Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 正则表达式:如何创建一个模式来匹配[$@&!]之间的至少一个小写字符、大写字符、数字和至少一个字符_Regex_Html - Fatal编程技术网

Regex 正则表达式:如何创建一个模式来匹配[$@&!]之间的至少一个小写字符、大写字符、数字和至少一个字符

Regex 正则表达式:如何创建一个模式来匹配[$@&!]之间的至少一个小写字符、大写字符、数字和至少一个字符,regex,html,Regex,Html,以下是我需要满足的一系列标准: 至少1个小写字母[a-z]>25% 大写字母[A-Z]>25%之间至少有一个字母 至少有一个介于[0-9]->25%之间的数字 [$@&!]->25%中至少有1个字符 密码的最小长度为6,最大长度为12 这就是我用来满足这些标准的模式 我还没有掌握正则表达式是如何工作的 我还没有想到如何设置模式来检查第四个条件[$@&!] <input type="password" name="password" placeholder="enter your pa

以下是我需要满足的一系列标准:

至少1个小写字母[a-z]>25%

大写字母[A-Z]>25%之间至少有一个字母

至少有一个介于[0-9]->25%之间的数字

[$@&!]->25%中至少有1个字符

密码的最小长度为6,最大长度为12

这就是我用来满足这些标准的模式

我还没有掌握正则表达式是如何工作的

我还没有想到如何设置模式来检查第四个条件[$@&!]

   <input type="password" name="password" placeholder="enter your password" 
`pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$@#&!]).{6,12}"required>
所以我需要一些帮助

使用正则表达式模式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@#&!]).{6,12}$

注意:取决于您使用的语法和/或编程语言,一些特殊字符可能需要通过\prefix进行转义。

@Welbog ok我可以使用JavaScript来实现这一点。我已经用JavaScript解决了这个挑战。但我想了解如何使用HTML5中的pattern属性实现这一点。您是否尝试将?=.[$@&!]添加到您的look aheads列表中?@Welbog我现在已经添加了它。问题是我读到*表示0或更多,而不是1或更多。因此,如果我在正则表达式中用+替换它,会更准确吗?模式=?=.*\d?=.[a-z]?=.[a-z]?=.[$@&!])。{6,12}模式是您应该根据需要使用的模式。如果你得到了问题的答案,你希望得到什么样的答案?结尾的美元符号是什么意思。我试着使用?=.*[0-9]?=.[$@&!]{6,12}并且成功了。这就是为什么我想知道^和$在模式前后的作用。在我现在测试的模式中,它和你的唯一区别是^和$。这就是我想说的。$表示字符串的结尾。如果不在我指定的位置使用它,就不会强制执行最大长度。您将获得子字符串匹配。^。{1,3}将与AAAAA匹配,但^.{1,3}$不会匹配。^表示字符串的开头。