图案密码 javascript

pattern password javascript

我正在研究具有以下要求的密码模式:

  1. 最少字符 = 6
  2. 最大字符数 = 64
  3. 最少 1 个小写字符
  4. 最少 1 个大写字符
  5. 最少 1 个数
  6. 最少 1 个特殊字符

我正在使用这个正则表达式:

var passReg = /^(?=^[ -~]{6,64}$)(?=.*([a-z][A-Z]))(?=.*[0-9])(.*[ -/|:-@|\[-`|{-~]).+$/;

然而,它并没有像预期的那样工作。

您一定是在寻找这个正则表达式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[ -/:-@\[-`{-~]).{6,64}$

demo

解释如下:

  • ^ - 字符串的开头
  • (?=.*[a-z]) - 正向预测需要小写字母
  • (?=.*[A-Z]) - 需要大写字母的正向预测
  • (?=.*[0-9]) - 需要数字的正向预测
  • (?=.*[ -/:-@\[-{-~])` - 需要特殊字符的正向预测
  • .{6,64} - 任何字符(但换行符除外),出现 6 到 64 次
  • $ - 字符串结束。

考虑特殊的非空白字符。我认为这是完整的列表:

! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~

试试这个:

var passReg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!"#$%&'()*+,-.\/:;<=>?\@[\]^_`{|}~]).{6,64}$/;

查看特殊字符的反向引用。在字符集中,像 \ 和 ] 的字符必须被转义。