Regex struts2中的正则表达式验证

Regex struts2中的正则表达式验证,regex,validation,struts2,operator-keyword,requiredfieldvalidator,Regex,Validation,Struts2,Operator Keyword,Requiredfieldvalidator,我需要使用xml文件验证来验证struts2中的代码字段。 我已经得到了正则表达式,它是有效的。 我想添加一个条件:如果字段为空也可以 我曾尝试以这种方式使用AND运算符: <field name="codeFiscale"> <field-validator type="regex"> <param name="expression"><![CDATA[^(?=^$)(?=[a-zA-Z]{6}[0-9]{2}[abcd

我需要使用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>


但它不起作用。有什么建议吗?

你是说一个OR操作员吗?你想要“要么你的第一个表达要么空白”

尝试以下方法:

(?:firstExpression)?(blank?)

你不是说一个电话接线员吗?你想要“要么你的第一个表达要么空白”

尝试以下方法:

(?:firstExpression)?(blank?)
使用或运算符

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

使用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>

我会很好地工作

^[0-9]{10}$
有一个bug

<field name="contact">
    <field-validator type="regex">
        <param name="regex">^[0-9]{10}$</param>
        <message>Invalid contact Number(10 digit)</message>         
    </field-validator>
</field>

^[0-9]{10}$
无效的联系人号码(10位)
我会很好地工作

^[0-9]{10}$
有一个bug

<field name="contact">
    <field-validator type="regex">
        <param name="regex">^[0-9]{10}$</param>
        <message>Invalid contact Number(10 digit)</message>         
    </field-validator>
</field>

^[0-9]{10}$
无效的联系人号码(10位)

不,我是说和操作员。还有一个NOT:(![CDATA)。因此,只有当两个表达式都不是trueno,我的意思是AND运算符时,才会出现错误。还有一个NOT:(![CDATA)。因此,只有当两个表达式都不是trueThank时,才会出现错误。它也适用于以下代码:(^$|^[a-zA-Z]{6}[0-9]{2}[ABCDEHLMPRSTABLCDEHLMPRST]{1}[0-9]{1}[0-9]{3}[a-zA谢谢。它也适用于这个代码:(^$|^[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[0-9]{3})[a-zA-Z]{1}$)