0

パスワード検証でハイフンを許可したい場合は、以下のケースが
あります。 1. 大文字と小文字が混在している必要
があります
。(キーボードに表示されるのはそれだけです)。

作ったのです
((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_'\"+={};:<>,.?/]).{8,32})
が、特殊文字セットにハイフンが含まれているhyphenので、どこに置くべきか。hyphen

4

2 に答える 2

1

-文字クラスでハイフンを許可する必要があります。

この正規表現を試してください:

^(?=.*?\\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[!@#$%^&*()_'\"+={};:<>,.?/-]).{8,32})$
于 2013-11-14T12:34:39.140 に答える
1

おそらく、すべてのチェックを一度に行う正規表現を作成できますが、代わりに次のアプローチをお勧めします。

private static boolean isPasswordValid(String password) {
    boolean valid = true;
    // at least one lowercased char
    valid &= password.matches(".*[a-z].*");
    // at least one uppercased char
    valid &= password.matches(".*[A-Z].*");
    // at least one digit
    valid &= password.matches(".*[0-9].*");
    // at least one special char
    valid &= password.matches(".*[!@#$%^&*()_'\"+={};:<>,.?/-].*");
    // length & no other char
    valid &= password.matches("[a-zA-Z0-9!@#$%^&*()_'\"+={};:<>,.?/-]{8,32}");
    return valid;
}
于 2013-11-14T13:02:15.893 に答える