论坛首页 Web前端技术论坛

一个JavaScript 验证API与表单自动验证组件

浏览 2568 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-19  

这个验证API提供了许多不错的验证函数,能满足常规开发的大部需求。
并且提供了诸如身份证,手机号码,邮政编码,严格的日期验证(闰年判断)...等等。

而表单自动验证组件。则利用HTML控件的自定义属性来定义输入限制。使用方式很简单:
比如有一个输入控件<input type="text" name="age">,比如需要限制为 12岁到70岁之间,只需如这样写<input type="text" name="age" limit="type:int;between:12-70">,即可。
那么,调用验证方法可以这样写:<input type="text" name="age" limit="type:int;between:12-70" onblur="validElement(this).">
如果这个控件属于某一个表单,则可以调用checkForm(form,isCheckAll)来完成验证。

可以在此下载这个组件:
http://code.google.com/p/cwin/downloads/list

以下是这个验证组件的API文档。
功能1.表单字段验证
      方法签名:validElement(element).
      功能:如果验证失败,返回false。显示在页面或跳出错误信息。
      参数说明:element:HTML元素,在页面上调用此方法时请使用 'this'调用。
                limit:验证条件串:如:'type:float;required:true;decLen:2'
                      limit的属性可以有: type,required,len,between,decLen,
                                         equals,general
                      属性说明:
type:string,int,digit,float,email,ip,url,date,datetime,time
                             tel,fax,mobileCn,idCard,signName,name,postcodeCn
                             default: string.
                        required:可选值有true和false.default:false.
                        len:字符串长度,值为 "6-20",表示长度在6和20之间。也可
                             以为"-20",表示不超过20。
between:数值有效,在两个值之间。可为 "10-100",表示大
                                小在10与00之间,也可为"-100",表示小于100。
                        decLen:浮点型精度长度.若不符合精度将会自动纠正.
                        equals:是否要求与其它元素相等。用于密码确认等场合.
                        general:是否是一般字符。不包括特殊字符.Default:true.
                msgArea:显示错误信息的SPAN或DIV的ID。如果传入为空,则会查找
                        global_error_msg_area 的SPAN或DIV,如果也为空,则会
                        alert 这些错误信息。
                msg:错误信息,如果这个参数为"",则会打出默认的错误信息.
功能2.表单自动验证:
      方法签名:checkForm(form,isCheckAll)
      isCheckAll:是否检查所有的元素:如为False,验证会在第一个错误出现时退出,否则,会验证所有的元素
      功能:验证表单中所有需要验证的字段.失败返回false.显示或跳出错误信息.
      使用条件:需要验证的元素需要定义至少 limit 属性,程序会自动搜索这个表单中所有需要验证的元素。
提示:如果您需要把错误信息显示在某一个单独的地方,可以定义一个ID为 global_error_msg_area 的DIV或是SPAN
    表单的验证将默认限制特殊字符,可以加入 general:false 来取消限制
----------------------------------------------------------------------------
----------------------------------------------------------------------------
  Subject:       JavaScript validation API
验证API
验证函数列表:

judgeDigit(arguments...) :判断是否数字
三种调用方式:
1.一个参数,简单判断是否为数字,但长度不超过10位
2.三个参数,第二个参数为 '>'(大于) 或 '<'(小于),第3个参数为要比较的数字
3.三个参数,第二个参数与第三个参数均为整数,判断传入的第一个参数值是否在他们中间.(含边界)

judgeFloat(arguments...):浮点数
如果是一个参数,那么判断是否为浮点数
如果有两个参数,那么将第二个参数作为精度限定参数
如果有三个参数,那么第二个参数为最小值,第三个参数是将作为数值上限

isDigit(str):是否数字

isSignName(arguments...)
两种调用方式:
一个参数:(默认为2--32位),判断标识符或是登录名
判断标识符或是登录名,以字母开头,可带数字、"_"、"." 的字串
三个参数:
限定最小长度(第二个参数)与最大长度(第三个参数)

isRealName(str) :判断是否是真实姓名
isTel(str) :电话号码:除数字外,可含有"-".校验普通电话,除数字外,可用"-"或空格分开
isMobileCN(s) :中国大陆地区手机号码,以13或15开头,使用时请根据变化修改,
isPostalCodeCN(s):中国地区邮编
isEmail(s) :E-mail
isURL(s) :URL
isIP(s):IP-32
isHtmlTag(s):HTML Tag
isIDNumber15(s):身份证号15位
isIDNumber18(s):身份证号18位
isChineseString(s):中文字符
isDoubleByteString(s):双字节
hasHESpace(s):是否包含首尾空格,如果包含,返回TRUE
isQQ(s):QQ
isFloat(s):是否是浮点数
isLeapYear(y):是否闰年
isDateYMD(s):日期:yyyy-mm-dd 或 yyyy/mm/dd,支持1600年以后(包含闰年验证)
isDateDMY(s):日期:dd-mm-yyyy 或 dd/mm/yyyy,支持1600年以后(包含闰年验证)
isDateMDY(s):日期:mm/dd/yyyy 或 mm-dd-yyyy,支持1600年以后(包含闰年验证)
isDateTimeYMD(s):日期:yyyy/mm/dd hh:mm:ss 或 yyyy-mm-dd hh:mm:ss,支持1600年以后(包含闰年验证)

containsSpecialChar()
是否包含非特殊字符(正常字符包括字母数字,下划线,和点号,空格,@#$% 和双字节)若包含,返回true

以下方法遵守这样的调用法则:
1.一个参数,不限制长度
2.三个参数,第二个参数表示允许的最小长度,第三个参数表示允许的最大长度

isDigitString():数字
isLetter():字母
isUpperLetter():大写字母
isLowerLetter():小写字母
isLetterNumString():字母与数字
isLNUString() :数字,字母,下划线字符串

兼容性:在IE6.0与Firefox2.0下测试通过。

 

   发表时间:2008-10-14  
谢谢,又长见识了!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics