const regex = /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[\W])(?=.*[\S])^[0-9A-Za-z\S]{6,12}$/g;
const password = `A123@abc`;
console.log(regex.test(password))
表达式解释:
在正则表达式中,\W
是一个特殊字符类,用于匹配任意非单词字符(非字母、非数字、非下划线)。
具体来说,\W
表示匹配以下字符之一:
- 除了字母(A-Z 和 a-z)
- 除了数字(0-9)
- 除了下划线(_)
换句话说,\W
匹配任何非单词字符。这个不包含下划线的,ZhangSan_01 校验会不通过。
表达式中这个6-12表示字符串长度,是可以修改成需要的位数。
^[0-9A-Za-z\S] 这个表达式是一个正则表达式,用于匹配一个字符的模式。在这个表达式中,它表示匹配一个字符,该字符可以是数字(0-9)、大写字母(A-Z)、小写字母(a-z)或者非空白字符(\S)。
更详细地解释该表达式的含义:
- ^ 表示匹配字符串的开头。
- [0-9A-Za-z\S] 表示一个字符集,匹配包含数字、大写字母、小写字母和非空白字符的任意一个字符。
- 0-9 表示数字范围 0 到 9。