代号一个电子邮件验证

时间:2019-01-14 11:27:09

标签: codenameone

我一直在尝试创建一种简单的电子邮件验证方法,该方法无法显示username@domainname.com的存在。 我尝试过:

public boolean validateEmailAddress(String emailAddress) {
RE pattern = new RE("^[(a-zA-Z-0-9-\\_\\+\\.)]+@[(a-z-A-z)]+\\.[(a-zA-z)]{2,3}$");
return pattern.match(emailAddress);
}

我从

导入了RE
com.codename1.util.regex.RE

每次测试时,我都会收到错误消息:

Exception: com.codename1.util.regex.RESyntaxException - Syntax error: Missing operand to closure

实现此目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

RegexConstraint中,我们将其用于电子邮件验证:

^([a-zA-Z0-9.!#$%&'*+/=?^`{|}~]|-|_)+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$

我对regex感到很糟糕,所以我可能会完全不了解...但是在我看来,([在您的版本中是相反的。

答案 1 :(得分:0)

我发现了一种非常简单的方法来进行验证。我不知道它的存在:

TextArea userName = new TextArea(); 
Validator validator = new Validator();
validator.addConstraint(userName, RegexConstraint.validEmail());

如果您想提供自己的用于验证的正则表达式,请执行以下操作:

RegexConstraint emailConstraint = new RegexConstraint("^[(a-zA-Z-0-9-\\_\\+\\.)]+@[(a-z-A-z)]+\\.[(a-zA-z)]{2,3}$", "Invalid Email Address");
validator.addConstraint(userName, emailConstraint);

然后要确保验证成功,请执行以下检查:

if (!validator.isValid()) {
         ToastBar.showErrorMessage("You have to make all corrections");
       }