2016-05-21 5 views
0

文字列のみを受け入れる必要のあるテキストボックスがあります: - 最初の正規表現が制約で設定されているため、A、R、F、U .2つの異なる制約が設定されているので、ユーザーに特定のメッセージを表示させたい、最初は無効な値、つまりデフォルトのzkossエラーである必要があり、予約文字を入力すると予約済みコードが入力されたことを示すはずです。 しかし、どういうわけか、次のコードのdoesntの仕事:ZKOSSのテキストボックスに複数の正規表現コストを設定する方法

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

出力は、第1正規表現が正常に動作しますが、同じ" {Illegal Value} ,/[^AaRrUuFf]/ : Reserved Code"がエラーとして表示されて怒ら上にあります。

答えて

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. 
    } 

} 
関連する問題