由特殊字符,数字和字母组合的用户密码正则表达式

时间:2025-02-14 18:50:53
 const reg = /^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[,\.#%'\+\*\-:;^_`].*))[,\.#%'\+\*\-:;^_`0-9A-Za-z]{8,}$/;

解析:
^表示开头位置
()表示捕获分组,()会把每个分组里的匹配的值保存起来,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推;
(?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值;不会保存起来;
?= 询问后面跟着的东西是否等于这个

(?=.*[0-9].*)
//询问开头后面跟着的东西是否是有至少一个数字的
(?=.*[A-Za-z].*)
//询问开头后面跟着的东西是否是有至少一个字母的
(?=.*[,\.#%'\+\*\-:;^_`].*)
询问开头后面跟着的东西是否是有至少一个特殊字符的,注意加了\用于转义,
每个非字母数字的特殊字符都可以用\进行转义,如果你不确定它是否需要转义的话;
[,\.#%'\+\*\-:;^_`0-9A-Za-z]{8,}
//有特殊字符或者字母或者数字组成的至少8个字符