Я использую EmailTextField в приложении Wicket 1.5 для регистрации пользователей. Согласно псевдониму GMail, в электронном письме может присутствовать символ +, но калитка этого не допускает. Есть ли способ принять дополнительный символ в валидаторе?
Wicket 1.5 - EmailTextField: принять символ плюса
Ответы (2)
Вам нужно написать собственный валидатор:
public class GMailAddressValidator extends PatternValidator {
public GMailAddressValidator() {
super("^[_A-Za-z0-9-+]+(\\.[_A-Za-z0-9-+]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*((\\.[A-Za-z]{2,}){1}$)",
Pattern.CASE_INSENSITIVE);
}
}
Здесь я просто добавляю два плюса к оригинальному регулярному выражению Wicket для проверки писем (пытался выделить плюсы жирным шрифтом):
^ [_ A-Za-z0-9- +] + (\\. [_ A-Za-z0-9- +] +) * @ [A-Za -z0-9 -] + (\\. [A-Za-z0-9 -] +) * ((\\. [A-Za-z] {2,}) {1} $)
После этого вы можете использовать простой TextField со своим валидатором вместо EmailTextField. Как это:
new TextField<String>("email").add(new GMailAddressValidator())
person
Artem Shafranov
schedule
03.10.2012
Я думаю, вам придется переопределить проверку HTML5 следующим образом: Переопределить проверку html5, компонент только устанавливает тип ввода для электронной почты, я не думаю, что он добавляет какую-либо проверку калитки. Если вы не хотите добавлять переопределение js, лучше всего будет создать собственный валидатор для TextField калитки.
person
drobson
schedule
03.10.2012