【发布时间】:2016-06-09 20:45:34
【问题描述】:
我一直在寻找我的问题,但找不到可以正常工作的解决方案,或者我的 RegEx 行有问题。我正在寻找不允许用户在密码中输入空格的部分。密码字段必须要求此正则表达式列表:
- 至少 1 个小写字母 [a-z]。
- 至少 1 个大写字母 [A-Z]。
- 至少 1 个数字字符 [0-9]。
- 密码不应包含任何特殊字符、符号或空格。
- 密码长度必须至少为 8 个字符。最大允许长度为 30 个字符。
现在我已经生成了包含所有内容的 RegEx 行,但没有包含空格的部分。如果有人知道这条线有什么问题,请纠正我并告诉我如何解决问题。顺便说一句,我试过 [\S] 但不起作用,我不知道为什么。
我的正则表达式行:
^(?=(?:.*[A-Z]){1,})(?=(?:.*[a-z]){1,})(?=(?:.*\d){1,})(?!(?:.*[!@#$%^&*()\-_=+{};:,<.>]))(.{8,30})$
这里是使用此 RegEx 的有效和无效密码的完整演示:Demo
感谢所有回答和帮助我的人。
【问题讨论】:
-
允许用户使用他们想要的passwords / phrases。 Don't limit passwords.
-
试试
^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?!.*[!@#$%^&*()\-_=+{};:,<.>])\S{8,30}$。顺便说一句,你是如何尝试[\S]的? -
Password should not contain any special characters, symbols为什么不呢? -
禁止空格、特殊字符和强制最大长度都是使您的用户密码更弱且更容易破解的好方法。让他们使用他们想要的密码,他们想要多久。
-
@MartinC。您应该告诉制定规范的人这是有缺陷的。