【发布时间】:2016-10-28 00:12:58
【问题描述】:
我正在尝试为密码验证创建正则表达式。以下是要求。
- 最小长度 8.
- 至少 1 个大写字母。
- 至少 1 个小写字母。
- 至少 1 个数字。
- 0 个或多个这些字符 !@#$%^&*?_~()- 允许。
- 允许 a-z。
- 允许 A-Z。
- 允许 0-9。
这是我目前的表达方式:
^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?_~()-]*).*$
这个表达式最有效,除了我需要它只允许项目符号 5-9。现在它将允许未指定的字符,例如+=。
如何修改此表达式以仅允许项目符号 5-9 而不允许其他字符?
【问题讨论】:
-
为什么要限制密码中的字符?更重要的是,为什么其他字符会成为您的密码存储问题?
-
为什么不对这些使用单独的检查?
-
不确定您所说的 “允许 5-9 并且没有其他字符”是什么意思?
-
@PeeHaa 后端已经这样设计了。
-
@melpomene 在正则表达式方面我是个菜鸟。我愿意接受任何建议。
标签: javascript regex