2016-07-14 11 views
2

少なくとも2つの特殊文字(パスワード強度チェッカーの場合は )と一致する正規表現を作成しようとしています。私は今、JavaScriptでこれを持っている:Javascriptで正規表現と一致する(ランダムな場所)

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

しかし、これはお互いの後にする必要があり、少なくとも二つの特別な文字かどうかをチェックします。私はどうすればそれを作ることができます、それはまた、それが互いの後でないかどうかをチェックするでしょうか?

例:それを行うには

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

'/ [^ A-ZA-Z0-9] * [^ A-ZA-Z0-9] /'ようです。?それがうまくいくように。それは '{特別なchar} [ゼロ以上の何でも、nonongdead] [特別なchar]' – CollinD

答えて

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);

+0

私は長さを使用しますif(password.match(/)[^ A-Za-z0-9])/)。 > = 2)。ありがとう^^ –

+1

グローバル修飾子 'g'を忘れないようにしてください。 – Timo

0

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

あなたがここでそれをテストすることができます:https://regex101.com/

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');

関連する問題