1

xmlファイル検証を使用してstruts2のコードフィールドを検証する必要があります。正規表現があり、機能します。条件を追加したいのですが、フィールドが空白の場合でも問題ありません。

AND演算子を次のように使用しようとしました。

    <field name="codeFiscale">
    <field-validator type="regex">
        <param name="expression"><![CDATA[^(?=^$)(?=[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[0-9]{3})[a-zA-Z]{1})$]]></param>
        <message key="error.CF.invalid" />
    </field-validator>
</field>

しかし、それは機能しません。なにか提案を?

4

3 に答える 3

2

OR演算子の使用

<field name="codeFiscale">
  <field-validator type="regex">
    <param name="expression"><![CDATA[(?:^\\s*$)|(^[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[0-9]{3})[a-zA-Z]{1}$)]]></param>
    <message key="error.CF.invalid" />
  </field-validator>
</field>
于 2012-12-21T13:11:09.050 に答える
1

OR演算子ではありませんか?あなたは「あなたの最初の表現か空白のどちらか」が欲しいです。

次のようなものを試してください:

(?:firstExpression)?(blank?)
于 2012-12-21T09:14:01.427 に答える
0

私はうまくいきます

<param name="expression">^[0-9]{10}$</param> バグがあります。

<field name="contact">
    <field-validator type="regex">
        <param name="regex">^[0-9]{10}$</param>
        <message>Invalid contact Number(10 digit)</message>         
    </field-validator>
</field>
于 2013-12-13T12:11:40.387 に答える