Проверка в GWT

#java #gwt

#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. Не могли бы вы, пожалуйста, рассказать мне, почему это происходит и каково ее решение.

Комментарии:

1. Не могли бы вы, пожалуйста, опубликовать stacktrace, который вы получаете, на консоли?

Ответ №1:

Регулярное выражение Java недоступно в GWT. Вы должны использовать регулярное выражение GWT.

Ответ №2:

Этот код предназначен для проверки идентификатора электронной почты. Я это проверил. В 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);
  

Ответ №3:

Согласно документации, это не должно работать. Но я случайно обнаружил, что вы также можете использовать java.lang.Метод сопоставления строк.

Итак, вы могли бы сделать это:

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

Ответ №4:

Попробуйте что-то вроде этого:

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