首页 > 技术文章 > Validator小知识

jacklizekun 2020-03-09 21:25 原文

Validator小知识

一、基础

1、简介
Validator是基于JavaScript技术的伪静态类和对象的自定义属性、可以对网页中的表单项输入进行相应的验证并且允许同一页面中同时验证多个表单的表单验证类

2、验证范围

是否为空、中文字符、双字节字符、英文、数字、整数、实数、Email地址、使用HTTP协议的网址、电话号码、货币、手机号码、邮政编码、身份证号码、QQ号码、日期、符合安全规则的密码、某项的重复值、两数的关系比较、判断输入值是否在(n,m)区间、输入字符长度限制(可按字节比较)、对于具有相同名称的单选按钮的选中判断、限制具有相同名称的多选按钮的选中数目、自定义的正则表达式验证、文件上传格式过滤等

二、属性Properties

1、accept
(1)类型:字符串, 可选。
(2)说明:设定表单项输入过滤,多用于type=“file” 的上传控件,以限制允许上传的文件类型。
(3)使用范围:该属性仅当dataType属性值为Filter时起作用。

2、dataType
*(1)类型:*字符串,必选。
(2)说明:用于设定表单项的输入数据验证类型。
(3)选值说明

Require----必填项 Chinese---- 中文 English ----英文 Number---- 数字
Integer ----整数 Double----实数 Email----Email地址格式
Url ---- 基于HTTP协议的网址格式 Phone ---- 电话号码格式 Mobile ---- 手机号码格式
Currency---- 货币格式 Zip----邮政编码 IdCard----身份证号码 QQ---- QQ号码
Date ----- 日期 SafeString ---- 安全密码 Repeat ---- 重复输入 Compare ---- 关系比较
Range----输入范围 Limit----限制输入长度 LimitB----限制输入的字节长度
Group ---- 验证单/多选按钮组 Custom ---- 自定义正则表达式验证
Filter -----设置过滤,用于限制文件上传

3、operator
(1)类型:字符串
(2)关系操作符

NotEqual ----- 不等于 != 						GreaterThan------大于 > 
GreaterThanEqual---- 大于等于 >= 				LessThan ----- 小于 < 
LessThanEqual ----- 小于等于 <= 					Equal ------ 等于 = 

4、其他属性

max / min / msg / require / to / format / regexp

三、方法Methods

1、Validator:主方法,表单验证入口方法。 
2、limit:测试输入字符的长度值len(字符数或字节数),是否在区间[min, max] 
3、LenB(string str) :获取输入字符串的字节数。
4、ClearState(object elem) :清除指定表单项elem的错误提示信息。 
5、AddError(int index, string str) :将未通过验证的表单项的当前索引值index和错误提示信息str添加到Validator的ErrorMessage和ErrorItem数组。 
6、Exec(string op, object reg) :测试字符串op是否符合正则对象reg所设定的规则。 
7、compare(int op1, string operator, int op2)
8、IsSafe(string str) :测试字符串str是否符合安全规则----包含字母、数字和特殊符号的一种以上,不允许出现空间,至少需要6位的长度。
9 IsIdCard(string number) :测试number是否符合身份证号码标准。 
10、IsDate(string op, string formatString) :测试op是否符合formatString所指定的日期格式。 
11、MustChecked(string name, int min=1, int max=*) :测试名称为参数name所指定的单/多选按钮组的选中个数是否在[min, max]区间 
12、DoFilter(string input, string filter) :测试输入值 input 是否包含在 filter 所指定的列表 

四、范例展示

1、验证输入是否Email地址

<input name="Email" dataType="Email" msg="信箱格式不正确"> 
<input name="Email" dataType="Custom" regexp="^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$" msg="信箱格式不正确">

2、验证下拉菜单是否选中

<select name="Operation" dataType="Require" msg="浏览器" >
<option value="">浏览器</option>
<option value="IE7">IE7</option>
<option value="IE8">IE8</option>
<option value="IE9">IE9</option>
</select>

3、验证是否选中单选按钮组中的一个

河北<input name="Province" value="1" type="radio">
河南<input name="Province" value="2" type="radio">
山西<input name="Province" value="3" type="radio">
陕西<input name="Province" value="4" type="radio" dataType="Group" msg="必须选定一个省份" >

4、限制多选按钮组的选中个数

健身<input name="Favorite" value="1" type="checkbox">
游泳<input name="Favorite" value="2" type="checkbox">
音乐<input name="Favorite" value="3" type="checkbox">
看书<input name="Favorite" value="4" type="checkbox"" dataType="Group" min="2" max="3" msg="必须选择2~3种爱好">

推荐阅读