如何在 ZKOSS 中的文本框上设置多个正则表达式约束

How to Set Multple Regex Costraints on textbox in ZKOSS

我有一个只能接受字符的文本框:-因为第一个正则表达式已设置为约束,它不应该接受一些保留关键字 A、R、F、U。由于设置了两个不同的约束,我希望用户看到具体消息,首先它应该是非法值,即默认 zkoss 错误,当 he/she 输入保留字符时,它应该显示已输入保留代码。 但不知何故,以下代码不起作用:

 field_code.setConstraint("/[a-zA-Z]/ : {Illegal Value} ,/[^AaRrUuFf]/ : Reserved Code");

输出是第一个正则表达式工作正常但在违规时 " {Illegal Value} ,/[^AaRrUuFf]/ : Reserved Code" 显示为错误。

您不能在 zul 中执行此操作,但在 SimpleConstraint 的帮助下您可以创建它。

创建您自己的 class,并扩展 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.
    }

}