【问题标题】:Codename One Email validation代号一 电子邮件验证
【发布时间】:2019-01-14 11:27:09
【问题描述】:

我一直在尝试创建一个简单的电子邮件验证方法,该方法显示 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

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

【问题讨论】:

标签: codenameone


【解决方案1】:

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

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");
       }

【讨论】:

    【解决方案2】:

    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,}))$
    

    我对正则表达式非常糟糕,所以我可能会完全关闭......但在我看来,([ 在你的版本中被颠倒了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-22
      • 2017-02-05
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多