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 回答