regex 模式密码javascript

zengzsys  于 2023-06-07  发布在  Java
关注(0)|答案(3)|浏览(139)

我正在编写一个密码模式,要求如下:
1.最小字符数= 6
1.最大字符数= 64
1.最少1个小写字符
1.最少1个大写字符
1.最少1个
1.最少1个特殊字符
我使用这个regex:

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

但是,它并不像预期的那样工作。

hfsqlsce

hfsqlsce1#

你必须寻找这个正则表达式:

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

参见demo
以下是解释:

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

niknxzdl2#

被视为特殊的非空格字符。我认为这是一个完整的列表:
!“# $ % & '()* +,- ./:; < = >?@ [ \ ] ^ _ ` {|} ~
试试这个:

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

查看后面的参考文献中的特殊字符。在字符集中,像\和]这样的字符必须转义。

qnakjoqk

qnakjoqk3#

输入密码并提交[8至25个字符,至少包含一个小写字母、一个大写字母、一个数字和一个特殊字符]

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,25}$/;

相关问题