【发布时间】:2018-11-07 10:13:16
【问题描述】:
这些是我需要满足的一组标准:
小写 [a - z] -> 25% 之间至少有 1 个字母
大写 [A - Z] 之间至少有 1 个字母 -> 25%
至少 1 个介于 [ 0 - 9 ] -> 25% 之间的数字
至少 1 个字符来自 [ $@#&! ] -> 25%
密码最小长度为6,密码最大长度为12
这是我用来尝试满足这些标准的模式。
我还没有掌握正则表达式的工作原理。
我还没有想出如何设置模式来检查第四个条件 [$@#&!]。
<input type="password" name="password" placeholder="enter your password"
`pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$@#&!]).{6,12}"required>
所以我需要一些帮助。
【问题讨论】:
-
@Welbog 好的,我可以使用 JavaScript 来实现这一点。我已经在 JavaScript 中解决了这个挑战。但我想了解如何使用 HTML 5 中的模式属性来实现这一点。
-
您是否尝试将
(?=.*[$@#&!])添加到您的前瞻列表中? -
@Welbog 我现在已经添加了。问题是我读到 * 表示 0 或更多而不是 1 或更多。因此,如果我在整个正则表达式中用 + 替换它会更准确吗?
-
pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[$@#&!]).{6,12}"模式是您应该根据您的要求使用的模式。如果您有问题的答案,您希望得到什么答案?