Wicket 1.5 - EmailTextField:接受“加号”符号

时间:2012-10-03 08:44:24

标签: wicket email-validation wicket-1.5

我在wicket 1.5应用程序中使用EmailTextField以便记录用户。根据GMail的别名,电子邮件中可能会出现+符号,但wicket不允许这样做。有没有办法在验证器中接受额外的符号?

2 个答案:

答案 0 :(得分:1)

您必须编写自己的验证器:

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} $)< / p>

之后,您可以使用简单的TextField和验证器而不是EmailTextField。像那样:

new TextField<String>("email").add(new GMailAddressValidator())

答案 1 :(得分:0)

我认为您必须覆盖HTML5验证,如下所示:Override html5 validation,组件只将输入类型设置为电子邮件,我认为它不会添加任何wicket验证。如果你不想添加js覆盖,最好的办法就是为wicket TextField创建自己的验证器。