Как проверить, что строка не содержит кириллицу и спецсимволы при помощи регулярного выражения?
Мне надо валидировать пароль и логин.
Строка может содержать латинские буквы, цифры и знак _
Сейчас мой код не проверяет на знаки $%#&?
и др.
Как разрешить только знак _
и вернуть false
если есть другие знаки?
private static boolean isValidPasswordAndLogin(String password) {
Pattern pattern = Pattern.compile("[0-9]*[a-zA-Z]*[_]*(?=\\S+$).{8,}");
Matcher matcher = pattern.matcher(password);
Pattern pattern2 = Pattern.compile("[а-яёА-ЯЁ]+");
Matcher matcher2 = pattern2.matcher(password);
if (matcher.find() && !matcher2.find()) {
return true;
}
return false;
}
Источник: Stack Overflow на русском