我在wicket 1.5应用程序中使用EmailTextField以便记录用户。根据GMail的别名,电子邮件中可能会出现+符号,但wicket不允许这样做。有没有办法在验证器中接受额外的符号?
答案 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创建自己的验证器。