我必须使用以下正则表达式检查一些textField:
[\sa-zA-Z.'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+
它适用于正则表达式检查程序,但它不适用于我的GWT / GXT应用程序。我在扩展AbstractValidator的类中使用上面的函数。
public static native boolean isValidName(String name) /*-{
var pattern = /[\sa-zA-Z.\'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+/;
return pattern.test(name);
}-*/;
我使用GXT2和GWT 1.6.4。
答案 0 :(得分:4)
您是否尝试使用String.macthes
来验证gxt Validator
中的值和TextField
类?
someTextField.setValidator(new Validator() {
@Override
public String validate(Field<?> field, String value) {
return value.matches("[\\sa-zA-Z.'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+")
? null : "not a valid value";
}
});
答案 1 :(得分:0)
确定gxt2 ...
相应的方法是setRegex(String regex),如果所有其他验证器都已通过
,它将被调用为什么不使用(用于gxt3):
com.sencha.gxt.widget.core.client.form.Field<T>.addValidator(Validator<T> validator)
field.addValidator(new RegExValidator( "[\sa-zA-Z.\'-àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]", "some message"));
答案 2 :(得分:0)
为什么要原生,你还可以使用Java
?或者甚至更好,试着看看GXT
是否为您提供了一些验证工具。与Validators
答案 3 :(得分:0)
Sencha GXT4:
枚举VType
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;
}
}
如何使用textField
field.addValidator(new VTypeValidator(VType.EMAIL,"Invalid email"));