Search code examples
unicodetextboxconstraintszkzul

zkoss textbox constraint="/\p{InCyrillic}*/"


Why it doesnt work whith regexp \p{InCyrillic}? I tried \p{L} but it doesn`t work too. My code in zul:

textbox  id="box" hflex="1" constraint="/\p{InCyrillic}*/"

Solution

  • Implemented own Constraint:

    package com.upc.webcallcentr4zk.controller.constraints;
    
    import java.io.Serializable;
    import java.util.regex.Pattern;
    import org.zkoss.zk.ui.Component;
    import org.zkoss.zk.ui.WrongValueException;
    import org.zkoss.zul.Constraint;
    import org.zkoss.zul.Textbox;
    
    public class PatterenCostraints implements Constraint, Serializable {
    
        private static final long serialVersionUID = 4052163775381888061L;
        private Pattern pattern;
    
        public PatterenCostraints(String pattern) {
            this.pattern = Pattern.compile(pattern);
        }
    
        @Override
        public void validate(Component comp, Object value) throws WrongValueException {
            if (comp instanceof Textbox) {
                String enteredValue = (String) value;
                if (enteredValue.isEmpty()) {
                    throw new WrongValueException(comp, "Bla bla bla!");
                } else if (!pattern.matcher(enteredValue).matches()) {
                    throw new WrongValueException(comp, "Bla bla bla!");
                }
            }
        }
    }
    

    After that:

    keywordBox.setConstraint(new PatterenCostraints("^(\\p{IsCyrillic}*)$"));