我有一个只接受字符的文本框: - 因为第一个正则表达式已经设置为约束,它不应该接受一些保留的关键字,即A,R,F,U。由于设置了两个不同的约束,我想要用户查看特定消息,首先它应该是非法值,即默认的zkoss错误,当他/她输入保留字符时,它应该显示保留代码已被放置。 但不知何故,下面的代码不起作用:
field_code.setConstraint("/[a-zA-Z]/ : {Illegal Value} ,/[^AaRrUuFf]/ : Reserved Code");
输出是第一个正则表达式工作正常,但在冒犯相同的" {Illegal Value} ,/[^AaRrUuFf]/ : Reserved Code"
时显示为错误。
答案 0 :(得分:0)
你不能在zul中这样做,但是在SimpleConstraint
的帮助下你可以创建它。
创建自己的类,并扩展SimpleConstraint
然后为每个约束保留2 Matcher
个变量
最后,将Validate方法覆盖为如下所示:
@Override
public void validate(Component comp, Object value) {
if (value != null && value instanceof String) {
String stringValue = (String) value;
if (!expression1.reset(stringValue).matches()) {
throw new WrongValueException(comp, errorMsg1);
}
if (!expression2.reset(stringValue).matches()) {
throw new WrongValueException(comp,errorMsg2);
}
} else {
// do what needs to be done when value is null or not a String.
}
}