当前位置: 首页 > 知识库问答 >
问题:

Javascript正则表达式,用于指定字符顺序的强密码

蓬弘
2023-03-14

我已经看到了强密码检查的答案,但我对字符出现的顺序有一个额外的要求。

密码应至少包含以下内容:

  1. 一个大写字母

命令如下:

  • 应该以大写和小写字母开头
  • 后跟数字和/或字母字符
  • 最后,应该是一个特殊的角色

e. g.

  • Xyz1325@是有效的
  • aBcd123xYz#也有效
  • @Xyz1234无效
  • 1234Xyz@无效
  • Xyz@无效

共有2个答案

隗锐进
2023-03-14

我相信你要找的正则表达式是:https://regex101.com/r/nO2DxE/2

说明:这些组(?=.[A-Z].*)(?=.[0-9].*)(?=.[A-Z].*)确保字符串至少包含一个大写字母、一个小写字母和一个数字。剩下的正则表达式检查您描述的顺序是否得到尊重。

总的来说,正则表达式是:(?=.[A-Z].*)(?=.[0-9].])(?=.[A-Z].^[A-zA-Z][A-zA-Z0-9]*[@!#-]$

夏烨霖
2023-03-14

在密码中引入特定的字符顺序会使它相对更容易预测,因此会失去它的强度,我建议您不要使用该限制。不过,你可以使用这个正则表达式来满足你的需求,

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*])[a-zA-Z][a-zA-Z\d]*[~!@#$%^&*?<>]*$

说明:

  • ^--

现在是确保秩序的部分。正如你所说,它应该以字母表开头,因此我们需要第一个字符,

[a-zA-Z]

接下来可以是字母或数字,因此你可以使用,

[a-zA-Z\d]*

最后,你想要特殊的角色,根据你的说法,“最终,应该是一个特殊的角色。”我假设你不想把它限制为一个特殊字符,因此在正则表达式的末尾应该是这样的,

[~!@#$%^&*?<>]*

可以匹配一个或多个特殊字符。如果你真的只想说一个特殊的字符,那就让它成为[~!@$%^

最后以$结束,以停止匹配字符串。

现场演示

希望这对你有用。或者,如果有其他疑问,请告诉我。

编辑

额外好处:如果你想检查长度,你可以使用以下方法

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*])(?=.{6,18}$)[a-zA-Z][a-zA-Z\d]*[~!@#$%^&*?<>]*$

额外的(? =.{6,18}$)是为了确保regex的长度在6到18之间。

@pushpesh,如果错了请纠正。

 类似资料:
  • 问题内容: 我已经在网上看到以下正则表达式。 仅当字符串: 我想知道如何转换此正则表达式,以便将字符串检查为 好吧,如果它至少包含2个大写,小写,数字和特殊字符,那么我就不需要8个字符的长度。 特殊字符包括: `〜!@#$%^&*()_- + = [] \ | {} ;:’“。,/ <>? 问题答案: 适应该正则表达式的最佳方法是将其剔除并编写一些代码。所需的正则表达式非常长且复杂,编写后两小时您

  • 我需要使用正则表达式验证密码 密码应至少包含四个字符, 至少有一个小写字符, 至少有一个大写字符, 至少一个数字 我有以上正则表达式工作,但它接受任何特殊字符。我怎么能拒绝呢,请指点

  • 问题内容: 我有日期主要集中在形式和。我想模式匹配。 为此目的编写正则表达式很简单吗?我是regex的新手,所以不胜感激任何资源达标可以使我快速入门吗? 问题答案: 如果您试图在字符串中查找这些日期符号,那么正则表达式确实是一个不错的选择。您可以使用此正则表达式: 在此处查看实际操作:http : //rubular.com/r/qZOTsUikbo。注意:这也匹配“ 日期 ” 。如果这对您来说是

  • 我试图为密码字段创建一个验证,它只允许字符和 时有什么区别,以及哪些字符来自

  • 问题内容: 谁能帮助我创建用于密码验证的正则表达式。 条件为“密码必须包含8个字符和至少一个数字,一个字母和一个唯一字符,例如 问题答案:

  • 本文向大家介绍使用正则表达式判断密码强弱,包括了使用正则表达式判断密码强弱的使用技巧和注意事项,需要的朋友参考一下 学python的re模板,写了个文章发现没人看,所以总结出来经验,理论没人爱,实战的人心,那么既然没人喜欢理论就直接上实战,在实战中精炼理论.不多说直接先上代码 解释一下 弱密码:全是数字,符号,字母 中等密码:数字加上符号,数字加上字母,字母加上符号 强密码:三个混合. 我没有区分