javascript - 在 Javascript 中用于密码验证的正则表达式

标签 javascript jquery regex passwords

正则表达式密码复杂性要求在创建或更改密码时必须应用以下四个特征中的任意三个

  • 字母字符 - 至少 1 个大写字母字符
  • 字母字符 - 至少 1 个小写字母字符
  • 数字字符 - 至少 1 个数字字符
  • 特殊字符 - 至少 1 个特殊字符

我正在尝试使用以下代码,但它不适用于特殊字符

(?=^.{6,}$)((?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*

我希望针对以下 4 种情况验证我的正则表达式

匹配案例

  • P@ssword
  • 密码1
  • p@ssword1
  • p@12345

最佳答案

我认为您可以使用的正则表达式是:

(?=^.{6,}$)(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9]).*

我不确定为什么您的正则表达式中有这么多 or 运算符,但这个匹配如果:

  • (?=^.{6,}$) - 字符串大于 5 个字符
  • (?=.*[0-9]) - 包含一个数字
  • (?=.*[A-Z]) - 包含一个大写字母
  • (?=.*[a-z]) - 包含一个小写字母
  • (?=.*[^A-Za-z0-9]) - 一个不是字母数字的字符。

Regular expression image

关于javascript - 在 Javascript 中用于密码验证的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17102946/

相关文章:

javascript - 定时 javascript 动画 : slower at the end then it should

php - 正则表达式 - 去除非数字并删除美分(如果有)

正则表达式 - 将 HTML 转换为 ol 标签的 Markdown

javascript - 使用 NativeScript 的混合应用程序

javascript - 如何在Asp.Net中使用JavaScript中的公共(public)或内部类?

javascript - 缩放两个 DIV 高度的基本 Js 函数

jquery - 将选项附加到下拉框?

jquery - 在通过索引找到的元素中引用一个元素

javascript - html表单标签的用途是什么

python - Python 方程替换中的正则表达式