Javascript 密码的正则表达式必须包含至少八个字符、至少一个数字以及大写和小写字母

Javascript 密码的正则表达式必须包含至少八个字符、至少一个数字以及大写和小写字母,javascript,reactjs,angularjs,regex,vue.js,Javascript,Reactjs,Angularjs,Regex,Vue.js,我正在使用 /^(?=.\d)(?=[a-z])(?=.[a-z])[0-9a-zA-z]{8,}$/ 但问题是当我添加任何特殊字符时,比如!/@/#。。。等等,这个正则表达式无效 例如: “Customer12”是有效的。 “@Customer12”无效 我需要一个regex,其中“Customer12”和“@Customer12”是有效的。 正则表达式不受特殊字符(~!@$%^&*())的影响 如何创建一个正则表达式,其中密码必须至少包含八个字符、至少一个数字以及大写和小写字母? 至少八个字

我正在使用

/^(?=.\d)(?=[a-z])(?=.[a-z])[0-9a-zA-z]{8,}$/

但问题是当我添加任何特殊字符时,比如!/@/#。。。等等,这个正则表达式无效

例如:

“Customer12”是有效的。 “@Customer12”无效

我需要一个regex,其中“Customer12”和“@Customer12”是有效的。 正则表达式不受特殊字符(~!@$%^&*())的影响

如何创建一个正则表达式,其中密码必须至少包含八个字符、至少一个数字以及大写和小写字母?

至少八个字符,至少一个字母和一个数字:

/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/
如果您需要至少八个字符、至少一个字母、一个数字和一个特殊字符,则可以使用以下表达式

/"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/

正则表达式在简洁性方面更为优越。但这里有一个非正则表达式的解决方案,对于非正则表达式语言学家来说,它的可读性越来越强:

函数validatePasswordWithoutRegex(pw){
//密码的正则表达式必须包含至少八个字符、至少一个数字以及大写和小写字母
pw=pw.trim();
//必须至少包含八个字符
如果(pw.length<8)返回false;
让alpha=“abcdefghijklmnopqrstuvxyz”;
让numeric=“0123456789”;
//至少一个数字
让OK=false;
对于(变量i=0;ilog(validatePasswordWithoutRegex(“Hello12rld”)我还没有测试@Amaarrockz解决方案,但是,使用正则表达式对于紧凑性来说是有意义的。我将发布一个不使用正则表达式进行比较的答案
(?=.*\d)(?=.*[a-z])。{8,}
使用这个正则表达式