【发布时间】:2023-03-03 04:52:21
【问题描述】:
我正在尝试为密码输入中的 html5 模式创建正则表达式。
密码必须至少包含:
- 1 个大写字母
- 1 个小写字母
- 1个号码
- 1 个特殊字符
- 8-20 个字符
- 不得以特殊字符开头或结尾
任何帮助表示赞赏
【问题讨论】:
-
不要在 HTML 中验证密码。这几乎是你能做到的最糟糕的地方。
-
只是出于好奇,为什么您的密码不能以特殊字符开头/结尾?这对我来说似乎是真的奇怪的逻辑。
-
这只是内联验证。服务器端将负责繁重的工作。关于结尾或开头的特殊字符的原因......抱歉没有线索,他们没有告诉我原因。
-
你和你的团队应该看看Reference - Password Validation。
-
如果您需要做某种验证客户端只需使用 AJAX 调用您的服务器端验证脚本。无需创建 2 个正则表达式。您现在在 HTML 模式中所做的任何事情都可以撤消,如果您使用
[a-z]来确保小写字母(大写字母、数字和特殊字符也是如此。添加 logic 不允许密码以特殊字符开头和结尾也会减少潜在密码的数量,从而降低您的系统安全性。您的团队绝对应该重新评估密码策略。