匹配Javascript中的特殊字符正则表达式(随机位置)

匹配Javascript中的特殊字符正则表达式(随机位置),javascript,regex,Javascript,Regex,我想做一个正则表达式来匹配至少两个特殊字符, 用于密码强度检查器。我现在有了Javascript: if (password.match(/([^A-Za-z0-9]{2,})/)) { //Add strength } 但这会检查至少两个需要在对方后面的特殊字符。我怎样做才能让它也能检查它是否在互相追逐 例如: _aaa!* //Match a!a_a* //Also match 一种方法是: var password='a!a_a*'; var matches=密码匹配(/([

我想做一个正则表达式来匹配至少两个特殊字符, 用于密码强度检查器。我现在有了Javascript:

if (password.match(/([^A-Za-z0-9]{2,})/)) {
    //Add strength
}
但这会检查至少两个需要在对方后面的特殊字符。我怎样做才能让它也能检查它是否在互相追逐

例如:

_aaa!* //Match
a!a_a* //Also match
一种方法是:

var password='a!a_a*';
var matches=密码匹配(/([^A-Za-z0-9])/g);
if(matches&&matches.length>=2){
console.log('Good');
}否则{
console.log('Bad');
}
console.log(匹配项)
^(.*?[\*\&列出您希望在此处允许的所有特殊字符,前缀为\]){2,}.*$


您可以在此处进行测试:

您可以使用
replace
进行此测试:

var password='a!a_a*';
var specialChars=密码。替换(/[A-Za-z0-9]/g');

log(密码,specialChars.length>1?'OK':'特殊字符太少')
/[^A-Za-z0-9].*?[^A-Za-z0-9]/
似乎可以用。这是
[special char][零或更多,nongreedy][special char]
我将使用长度,使用if(password.match(/([^A-Za-z0-9])/)。长度>=2。谢谢^^请确保不要忘记
g
global修饰符。