を動作するようですこの正規表現は、文字列の先頭に位置する位置にも適用することができる方法を複数のAND論理条件を示していること
function valid_password(text) {
/*#!(?#!js re_password Rev:20160409_0700)
# Password validation with multiple requirements.
^ # Anchor to start of string.
(?=[^&%$^#@=]*[&%$^#@=]) # Use at least one (&%$^#@=).
(?=(?:\D*\d){2}) # Have at least 2 numbers.
(?!\d) # Numbers not at the beginning.
(?!.*\d$) # Numbers not at the end.
(?=\D*(?:\d\D+)+$) # Numbers not next to each other.
(?=(?:[^A-Z]*[A-Z]){2}) # At least 2 uppercase.
(?=(?:[^a-z]*[a-z]){2}) # At least 2 lowercase.
.{8,} # Be at least 8 characters.
$ # Anchor to end of string.
!#*/
var re_password = /^(?=[^&%$^#@=]*[&%$^#@=])(?=(?:\D*\d){2})(?!\d)(?!.*\d$)(?=\D*(?:\d\D+)+$)(?=(?:[^A-Z]*[A-Z]){2})(?=(?:[^a-z]*[a-z]){2}).{8,}$/;
if (text.match(re_password)) { return true; }
return false;
}
注:HICHは、あなたの検証要件を満たしています。上記の正規表現の数値要件の複数の条件は、単一のアサーションにまとめることができることにも注意してください。これらのアサーションは冗長(複数のアサーションスタイル)で示しています。
希望すると便利です。
[Lookaheads](http://www.regular-expressions.info/lookaround.html)は、問題を解決するのに役立ちます。私はあなたがGoogleによって数百万のパスワード検証正規表現を見つけ出し、あなたの要求にそれらを採用できるはずだと思います。 –