正文

Validator 验证 - 用正则表达式验证表单字段2007-03-13 11:00:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hurongliang/23924.html

分享到:

mask验证规则提供了基于正则表达式的验证机制,如: <form name="ValidationTestForm">     <!-- Validate Social Security Number -->     <field property="ssn"             depends="required,mask">         <arg key="prompt.ssn"/>         <var>             <var-name>mask</var-name>             <var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value>         </var>     </field> </form> 正则表达式使用通用符号描述并解析文本,使用它你可以验证数据是否符合指定的格式。 STRUTS框架通过mask验证规则使用正则表达式。可以在var元素中指定正则表达式。 <var>     <var-name>mask</var-name>     <var-value>^[0-9]{3}-[0-9]{2}-[0-9]{4}$</var-value> </var> name属性必须是mask,value指定要使用的正则表达式。如果匹配则通过验证,否则验证失败。 如果你使用struts1.1及以后的版本,那么正则表达式必须以“^”开头,以“$”结尾。      举例: ^[0-9]{3}-[0-9]{2}-[0-9]{4}$ 理解如下: 开头一个开头符号(^),,接着是三个0到9的字符({3}),接着是连接符号,接着是两个0到9的字符([0-9]),接着是一个连接符号(-),接着是四个0到9的字符([0-9]),,接着是一个结束符号($). n   requiredif: 在struts1.1Z中,如果一个字段的验证依赖于另一个字段,可用requiredif验证规则。 举例如下: <!-- zipCode is required if city is null or state is null --> <field property="zipCode" depends="requiredif">     <arg key="prompt.zipCode"/>     <var>         <var-name>field[0]</var-name>         <var-value>city</var-value>     </var>     <var>         <var-name>fieldTest[0]</var-name>         <var-value>NULL</var-value>     </var>     <var>         <var-name>field[1]</var-name>         <var-value>state</var-value>     </var>     <var>         <var-name>fieldTest[1]</var-name>         <var-value>NULL</var-value>     </var>     <var>         <var-name>fieldJoin</var-name>         <var-value>OR</var-value>     </var> </field> 当city或state的值为空或不存在时,zipCode不能为空。 客户端不能进行requiredif验证    在struts1.1前要实现这样的 功能必须自己写代码进行验证。 field[i]对应的var-value值代表一个表单属性: <var>     <var-name>field[0]</var-name>     <var-value>property name</var-value> </var> fieldTest[i]代表测试类型: <var>     <var-name>fieldTest[i]</var-name>     <var-value>test type</var-value> </var> 测试类型有以下三种: NULL: 字段为NULL或空字符串 NOTNULL: 字段不为NULL或空字符串 EQUAL: 字段值为一个指定的值   如果测试类型为EQUAL,则还需定义一个元素fieldValue[i]: <var>     <var-name>fieldValue[i]</var-name>     <var-value>literal value</var-value> </var> 如果这个属性是一个数字的,则字面值将被转换为数值。否则字面值将当作一个字符串。 如果依赖多个字段,则须用fieldJoin变量确定这多个字段的逻辑关系: <var>     <var-name>fieldJoin</var-name>     <var-value>logical operator</var-value> </var> 合法的value值为AND和OR,AND表示所有依赖的字段都必须符合fieldTest规定的类型时,要验证的数据不为空;OR表示所依赖的字段有一个符合要求时要验证的数据不为空。 在struts1.2中,requiredif已被validwhen代替。 n   validwhen: 如下例表示当下列事实发生时,zipCode合法有效: 1.        city和state属性不为空 2.        zipCode不为空 <form name="AddressForm">   <field property="zipCode" depends="validwhen">       <arg key="prompt.zipCode"/>       <var>           <var-name>               test           </var-name>           <var-value>               (((city != null) and (state != null)) or (*this* != null))           </var-value>       </var>   </field> <form name="AddressForm"> validwhen比requiredif功能更强大。requiredif表示“如果。。。这个字段不为空”。validwhen表示“当。。。时这个字段有效”。 当你使用这个验证时,请确保验证结果能为 true      *this*符号表示要验证的字段zipCode。

阅读(5113) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册