Regex 使用GXT验证文本字段
我必须用以下正则表达式检查一些文本字段:Regex 使用GXT验证文本字段,regex,gwt,gxt,Regex,Gwt,Gxt,我必须用以下正则表达式检查一些文本字段: [\sa-zA-Z.'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+ 它与regex checker一起工作,但与我的GWT/GXT应用程序不工作。我在扩展AbstractValidator的类中使用上述函数 public static native boolean isValidName(String name) /*-{ var pattern = /[\sa-zA-Z.\'-àáâãäåçèéêëìíîïðòóôõöùúû
[\sa-zA-Z.'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+
它与regex checker一起工作,但与我的GWT/GXT应用程序不工作。我在扩展AbstractValidator的类中使用上述函数
public static native boolean isValidName(String name) /*-{
var pattern = /[\sa-zA-Z.\'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+/;
return pattern.test(name);
}-*/;
我使用GXT2和GWT1.6.4。对GXT2来说没问题
相应的方法是,如果所有其他验证器都已通过,则将调用该方法
为什么不使用(对于gxt3):
com.sencha.gxt.widget.core.client.form.Field.addValidator(验证器验证器)
field.addValidator(新的RegExValidator(“[\sa-zA-Z.\'-ááååèèèèèèèèèèèèèèèèèè232;
看
有关gxt2,请参见确定
相应的方法是,如果所有其他验证器都已通过,则将调用该方法
为什么不使用(对于gxt3):
com.sencha.gxt.widget.core.client.form.Field.addValidator(验证器验证器)
field.addValidator(新的RegExValidator(“[\sa-zA-Z.\'-ááååèèèèèèèèèèèèèèèèèè232;
看
请参见为什么要使用本机,而您仍然可以使用
Java
?或者更好的办法是,看看GXT
是否提供了一些验证工具。像验证器
相关:既然您仍然可以使用
Java
,为什么要使用本机呢?或者更好的办法是,看看GXT
是否提供了一些验证工具。像验证器
相关:您是否尝试过在gxt
TextField
中使用String.macthes
验证值和Validator
类
someTextField.setValidator(new Validator() {
@Override
public String validate(Field<?> field, String value) {
return value.matches("[\\sa-zA-Z.'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+")
? null : "not a valid value";
}
});
someTextField.setValidator(新验证器(){
@凌驾
公共字符串验证(字段、字符串值){
返回值.matches(“[\\sa-zA-Z.-a-”匹配项“[\\sa-zA-Z.-a-”匹配项“+”)
?null:“不是有效值”;
}
});
您是否尝试过在gxtTextField
中使用String.macthes
验证值和Validator
类
someTextField.setValidator(new Validator() {
@Override
public String validate(Field<?> field, String value) {
return value.matches("[\\sa-zA-Z.'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+")
? null : "not a valid value";
}
});
someTextField.setValidator(新验证器(){
@凌驾
公共字符串验证(字段、字符串值){
返回值.matches(“[\\sa-zA-Z.-a-”匹配项“[\\sa-zA-Z.-a-”匹配项“+”)
?null:“不是有效值”;
}
});
Sencha GXT4:
枚举类型
验证程序类
Sencha GXT4: 枚举类型
验证程序类
@MacFly你有没有查看我发布的链接?@MacFly我强烈建议你在问题中添加GWT和GXT版本。。。然而,在这方面我帮不了你,我从2.1开始就知道GWT。也许你应该考虑更新GWT?@ McField,你检查了我发布的链接吗?@ McFLASH我强烈建议你把GWT和GXT版本添加到你的问题…然而,在这方面我帮不了你,我从2.1开始就知道GWT。也许你应该考虑更新GWT?参考文献:
public enum VType {
ALPHABET("^[a-zA-Z_]+$", "Alphabet"), ALPHANUMERIC("^[a-zA-Z0-9_]+$",
"Alphanumeric"), NUMERIC("^[+0-9]+$", "Numeric"), EMAIL("^(\\w+)([-+.][\\w]+)*@(\\w[-\\w]*\\.){1,5}([A-Za-z]){2,4}$","Email");
String regex;
String name;
VType(String regex, String name) {
this.regex = regex;
this.name = name;
}
}
import java.util.ArrayList;
import java.util.List;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.EditorError;
import com.sencha.gxt.widget.core.client.form.Validator;
import com.sencha.gxt.widget.core.client.form.error.DefaultEditorError;
public class VTypeValidator implements Validator<String> {
private String message;
private final VType type;
public VTypeValidator(VType type,String message){
this.type = type;
this.message=message;
}
@Override
public List<EditorError> validate(Editor<String> editor, String value) {
List<EditorError> res = null;
if (!value.matches(type.regex)) {
List<EditorError> errors = new ArrayList<EditorError>();
errors.add(new DefaultEditorError(editor, message,""));
return errors;
}
return res;
}
}
field.addValidator(new VTypeValidator(VType.EMAIL,"Invalid email"));