我在 wicket 1.5 应用程序中使用 EmailTextField 来记录用户。根据 GMail 别名,电子邮件中可能存在 + 符号,但检票口不允许这样做。有没有办法在验证器中接受额外的符号?
问问题
890 次
2 回答
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}$)
之后,您可以将简单的 TextField 与验证器一起使用,而不是使用 EmailTextField。像那样:
new TextField<String>("email").add(new GMailAddressValidator())
于 2012-10-03T09:47:34.197 回答
0
我认为您将不得不像这样覆盖 HTML5 验证:覆盖 html5 验证,该组件仅将输入类型设置为电子邮件,我认为它不会添加任何检票口验证。如果您不想添加 js 覆盖,最好的办法是为检票口 TextField 创建自己的验证器。
于 2012-10-03T09:07:35.893 回答