次のルールをテストする正規表現があります。
- パスワードには少なくとも1文字が必要です。
- パスワードには、少なくとも1つの数値が必要です。
- パスワードには、少なくとも1文字の英数字が必要です(1文字以上許可する必要があります)
私の試みはこれです、
/^([a-zA-Z+]+[0-9+]+[!@#$%^&*])$/
これは、1つ以上の英数字を追加する場合を除いて、ほとんどの場合と同様に正常に機能します。
テスト
- テスト[qwer1234]結果[無効]結論[合格]
- テスト[qwer1234$]結果[有効]結論[合格]
- テスト[qwer1234#$]結果[無効]結論[失敗]
最後のテストは合格するはずですが、失敗します。どこが間違っているかはわかっていますが、正規表現の魔法にこだわることができませんでした。何が悪いのかについての私の考えは、
[0-9+] // This + sign shows that you can have more then 1 of that range of numerics
どこ、
[!@#$%^&*] // Does not have the + sign
私は試した、
[!@#$%^&*+] // Does not have the + sign
[!@#$%^&*]+ // Does not have the + sign
両方とも機能しませんでした。私は何が欠けていますか?