繁体   English   中英

GWT 中的验证

[英]Validation in GWT

我正在使用 GWT 并希望使用 java 代码(即使用正则表达式)验证 email,但是当我使用代码时:

/*
 * 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();


      }
}

.它在构建中给了我运行时错误。xml。你能告诉我为什么会发生这种情况以及它的解决方案是什么。

Java 正则表达式在 GWT 中不可用。 您应该使用GWT 的 RegExp

这是用于验证 email 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);

尝试这样的事情:

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

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

所以,你可以这样做:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM