在GWT中验证

时间:2011-05-30 10:19:58

标签: java gwt

我正在使用GWT并希望使用java代码验证电子邮件,即使用正则表达式,但是当我使用代码时:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.ArosysLogin.client;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidator{

      private Pattern pattern;
      private Matcher matcher;

      private static final String EMAIL_PATTERN =
                   "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

      public EmailValidator(){
          pattern = Pattern.compile(EMAIL_PATTERN);
      }

      /**
       * Validate hex with regular expression
       * @param hex hex for validation
       * @return true valid hex, false invalid hex
       */
      public boolean validate(final String hex){

          matcher = pattern.matcher(hex);
          return matcher.matches();


      }
}

。它在build.xml中给我运行时错误。你能告诉我为什么会这样,它的解决方案是什么。

4 个答案:

答案 0 :(得分:10)

GW正在使用Java正则表达式。您应该使用GWT's RegExp

答案 1 :(得分:6)

这是用于验证电子邮件ID的代码。我检查了一下。它在GWT中运行良好。

String  s ="survi@gmail.com";
Boolean b = s.matches(
 "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
System.out.println("email is " + b);

答案 2 :(得分:1)

尝试这样的事情:

if(email.matches("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")){
    GWT.log("Email Address Valid");
}else{
 GWT.log("Email Address Invalid");
 valid = false;
}

答案 3 :(得分:0)

根据文档,它不应该工作。但我偶然发现你也可以使用java.lang.String匹配方法。

所以,你可以这样做:

public boolean validate(final String hex){
  return ((hex==null) || hex.matches(EMAIL_PATTERN));
}