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

时间:2016-07-14 18:05:01

标签: javascript regex

我试图制作正则表达式以匹配至少两个特殊字符, 用于密码强度检查器。我现在在Javascript中有这个:

if (password.match(/([^A-Za-z0-9]{2,})/)) {
    //Add strength
}

但是这会检查至少两个需要相互跟随的特殊字符。我怎样才能做到这一点,这样它也会检查它是否不会相互影响?

示例:

_aaa!* //Match
a!a_a* //Also match

3 个答案:

答案 0 :(得分:1)

一种方法:

var password = 'a!a_a*';
var matches = password.match(/([^A-Za-z0-9])/g);

if (matches && matches.length >= 2) {
  console.log('Good');
} else {
  console.log('Bad');
}

console.log(matches);

答案 1 :(得分:1)

您可以使用replace



var password = 'a!a_a*';
var specialChars = password.replace(/[A-Za-z0-9]/g, '');

console.log(password, specialChars.length > 1 ? 'OK' : 'Too few special chars');




答案 2 :(得分:0)

^(.*?[\*\& list all the special characters you want to allow here prefixed by \]){2,}.*$

您可以在此处进行测试:https://regex101.com/