如何解决在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中给了我运行时错误。能否请您告诉我为什么会这样以及它的解决方案是什么。
解决方法
Java regex在GWT中不可用。您应该使用GWT的RegExp。
, 这是用于验证电子邮件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 \的matchs方法。
因此,您可以这样做:
public boolean validate(final String hex){
return ((hex==null) || hex.matches(EMAIL_PATTERN));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。