Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача про проверку логина

Мелания Гордеева Ученик (103), на голосовании 1 год назад
Реализуйте проверку "Логина" в методе validateLogin по следуюзим правилам:
* - должен содержать только латинские буквы, цифры и знак подчеркивания
* - должен содержать как минимум одну маленькую, одну большую букву, цифру и нижнее подчеркивание
* - максимальная длинна логина- 20 символов
* - если логин не соответствует требованиям - выбросить LoginValidationException
* - можно использовать регулярные выражения
* 3. Реализуйте проверку логина в методе isLoginValid по следующим правилам
* - метод должен вызывать метод validateLogin
* - если метод validateLogin не выбросил ошибку - вернуть true
* - если метод validateLogin выбросил ошибку - вернуть false
Голосование за лучший ответ
Горбунов Роман Знаток (381) 1 год назад
 import java.util.regex.*; 

class LoginValidationException extends Exception {
public LoginValidationException(String message) {
super(message);
}
}

public class LoginValidator {
public static void validateLogin(String login) throws LoginValidationException {
Pattern pattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*_)[a-zA-Z\\d_]{1,20}$");
Matcher matcher = pattern.matcher(login);
if (!matcher.matches()) {
throw new LoginValidationException("Login does not meet the requirements");
}
}

public static boolean isLoginValid(String login) {
try {
validateLogin(login);
return true;
} catch (LoginValidationException ex) {
return false;
}
}
}
rabtraУченик (191) 1 год назад
что означает (?=.*) ?
И почему вы в конце написали [a-zA-Z\\d_]
уже 2 часа сижу изучаю регулярки в java, но такого никто не показал
Похожие вопросы