我正在使用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中给我运行时错误。你能告诉我为什么会这样,它的解决方案是什么。
答案 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));
}