^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W])[A-Za-z\d\W]{8,}
经常用于密码验证表达应该是最小的8个字符,1下的情况下,1上的情况下,1号,1个特殊字符,不应包含空格和逗号密码验证允许某些分8性格特征的特殊字符,numbe,字母和不应包含空格和逗号
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W])[A-Za-z\d\W]{8,}
经常用于密码验证表达应该是最小的8个字符,1下的情况下,1上的情况下,1号,1个特殊字符,不应包含空格和逗号密码验证允许某些分8性格特征的特殊字符,numbe,字母和不应包含空格和逗号
您可以创建包含RegExp
项目阵列应返回true
,并且应该返回false
,使用Array.prototype.every()
来检查,如果字符串中包含的每个值
var str = `1aB$1234`;
var str1 = `1aB$,234`;
var str2 = `1aB$123 `;
// should match at least one of each `RegExp` in array
var matches = [/[a-z]{1}/, /[A-Z]{1}/, /[0-9]{1}/, /[!#$]{1}/];
// should not match any `RegExp` in array
var not = [/,/, /\s/]
var checkpw = (input) => matches.every(match => new RegExp(match).test(input))
&& not.every(n => !new RegExp(n).test(input))
&& input.length === 8;
console.log("\n","str:" + `${str}:` + checkpw(str) + "\n"
, "str1:" + `${str1}:` + checkpw(str1) + "\n"
, "str2:" + `${str2}:` + checkpw(str2));
你的语法是正确的,但对我的眼睛来说并不常见......我从来没有见过这样的事情'var checkpw =(input)=> ......到目前为止。你为什么在变量名的开头使用'$'? – Shafizadeh
@Shafizadeh请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions,https://developer.mozilla.org/en-US/docs/Web/JavaScript/参考/ Template_literals – guest271314
太好了。 。 。 。 +1 – Shafizadeh
当我们输入这个文本Helloworld !,作为密码它应该会抛出错误,因为它包含逗号 –
你的问题是什么? –
当我们输入这个文本Helloworld !,作为密码它应该会抛出错误,它包含逗号 –