Passwort muss enthält: 1 Ober Brief 1 unteren Brief 1 Stelle 1 spezielles Symbol Minimum 8 SymboleRegex Kennwortüberprüfung wie spezielles Symbol unterstreicht hinzufügen
Hier ist es meine regex:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#[email protected]_$%^&*-]).{8,}$
Aber wenn ich versuche, zum Beispiel mit Passwort zu validieren: Test_123 gibt es mir false
hier ich ist mein Code:
public class PasswordCheck {
static Logger logger = Logger.getLogger(CommonHelper.class);
private static final String PASSWORD_PATTERN = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#[email protected]_$%^&*-]).{8,}$";
private Pattern pattern;
private Matcher matcher;
public PasswordCheck() {
pattern = Pattern.compile(PASSWORD_PATTERN);
}
/**
* Validate password with regular expression
*
* @param password
* password for validation
* @return true valid password, false invalid password
*/
public boolean validate(final String password) {
matcher = pattern.matcher(password);
System.out.println(password);
System.out.println(matcher.matches());
return matcher.matches();
}
}
Ich versuche es gerade neuen String in validate Funktion mit dem gleichen Text zu setzen: Test_1523 und Rückkehr mich wahr, aber wenn ich diese Zeichenfolge über Rest-Service veröffentlichen und an die Funktion übergeben kehre mich falsch
Ich überprüfe auf http://regexr.com/ und regex es ist ok, bitte könnten Sie Ihren Code posten? – aurox
funktioniert auch für mich –
Haben Sie den case insensitive Modifier gesetzt? –