当前位置:首页 > 英文周记 > 正文内容

validator「validator中文教程」

更新时间:2026-07-18 01:16:11 周记网4年前 (2023-01-20)英文周记257

antd form表单validator 校验(4.17) 输入框一直是红色解决方法

使用 antd 的 validator 方法时 用 antd 官方提供的示例会 导致输入框一直是红色

改用以下写法就好了

validator「validator中文教程」

```

rules={[

          {

            validator: async function validator(_, value, callback) {

              const res: any = await getCheckNumberUnique(value);//异步发送接口 给 后端进行校验

              if (res res.data res.data.code === 500) {

                throw new Error('地图编号重复');//错误信息

              } else {

                callback();//恢复为蓝色框

              }

            },

          },

        ]}

```

如何使用Validator框架

Validator框架是一个独立的Validation Framework,目前在Struts1.1中可以一起打包下载。作为Apache Commom的一个OpenSource,它可以和Struts一起结合使用,也可以和其他非Web应用中使用。前段时间利用Eclipse3.02 + MyEclipse3.8.4结合Xdoclet开发了一个EJB + Struts的Web应用,发现采用这些工具开发效率还是比较高的。MyEclipse通过xdoclet生成CMP ejb的时候会自动创建对应的Value Object类,结合struts框架时,可以把这Value Object结合Struts中的Form采用Composite模式,采用委托的方式来实现ActionForm。这些在Eclipse IDE中实现非常快速。但也存在一些问题,当JSP页面中的FORM中的数据通过Struts中的Form进入到对应的Value Object之前需要进行数据合法性校验,而这种校验在一个企业级Web应用中会存在大量的重复冗余代码,造成大量的重复工作和维护的工作量。

Validator是一个独立于表现和业务逻辑的一个FrameWork,它通过预定义一组校验规则以及提供了一套简单的扩展机制,让程序员可以自由的定义自己复杂的校验规则。规则与规则可以是相互依赖的,也可以是独立的。

下面使用一个登录的例子简单谈谈如何让Validator框架与Struts框架进行整合,从而把数据校验独立出来,使得大部分的校验规则得到重用,并且使得校验方法可配置化和易于维护。

1、准备配置文件

这里要用到两个xml文件,validator-rules.xml和validation.xml,前者用于定义校验器,在validator框架中已经预定义了十几个常用的校验器的实现;后者用于定义和Struts框架中具体的Form相关联的各个字段的校验,这两个文件放置在/WEB-INF/目录下面。

2、准备Struts的Form和Action

定义一个Form,这个Form从ValidatorFrom继承而来(缺省从ActionForm继承),具体的代码如下:

//Created by MyEclipse Struts

// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.4/xslt/JavaClass.xsl

package com.test.struts.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.validator.ValidatorForm;

/**

* MyEclipse Struts

* Creation date: 06-19-2005

*

* XDoclet definition:

* @struts:form name="logonForm"

*/

public class LogonForm extends ValidatorForm {

private String memberID;

private String password;

/**

* Method reset

* @param mapping

* @param request

*/

public void reset(ActionMapping mapping, HttpServletRequest request) {

memberID = null;

password = null;

}

/**

* @return Returns the memberID.

*/

public String getMemberID() {

return memberID;

}

/**

* @param memberID The memberID to set.

*/

public void setMemberID(String memberID) {

this.memberID = memberID;

}

/**

* @return Returns the password.

*/

public String getPassword() {

return password;

}

/**

* @param password The password to set.

*/

public void setPassword(String password) {

this.password = password;

}

}

定义一个Action,具体的代码如下所示:

//Created by MyEclipse Struts

// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.4/xslt/JavaClass.xsl

package com.test.struts.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import com.test.struts.form.LogonForm;

/**

* MyEclipse Struts

* Creation date: 06-19-2005

*

* XDoclet definition:

* @struts:action path="/logon" name="logonForm" input="/jsp/logon.jsp" scope="request" validate="true"

*/

public class LogonAction extends Action {

/**

* Method execute

* @param mapping

* @param form

* @param request

* @param response

* @return ActionForward

*/

public ActionForward execute(

ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response) {

LogonForm logonForm = (LogonForm) form;

return mapping.findForward("success");

}

}

FormBean和Action在struts-config.xml中的配置如下所示:

form-beans

form-bean name="logonForm" type="com.test.struts.form.LogonForm" / /form-beans

action-mappings

action

attribute="logonForm"

input="/jsp/logon.jsp"

name="logonForm"

path="/logon"

scope="request"

validate="true"

type="com.test.struts.action.LogonAction"

forward name="success" path="/jsp/success.jsp"/

/action

/action-mappings

注意:在action元素中的validate属性必需设置为true。

3、配置validator-rules.xml和validation.xml文件

validator-rules.xml用于配置校验器,这个文件基本上可以重用。validation.xml用于配置与具体的Form Bean有关的校验配置。

validator-rules.xml

form-validation

global

validator name="required"

classname="org.apache.struts.validator.FieldChecks"

method="validateRequired"

methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction,

org.apache.commons.validator.Field,

org.apache.struts.action.ActionErrors,

javax.servlet.http.HttpServletRequest"

msg="errors.required"

......

/global

/form-validation

Validation.xml

form-validation

!-- ========== Default Language Form Definitions ===================== --

formset

form name="logonForm"

field property="memberID"

depends="required,short, minlength,maxlength"

arg0 key="prompt.memberID"/

arg1 key="${var:minlength}" name="minlength"

resource="false"/

arg2 key="${var:maxlength}" name="maxlength"

resource="false"/

var

var-namemaxlength/var-name

var-value16/var-value

/var

var

var-nameminlength/var-name

var-value3/var-value

/var

/field

field property="password"

depends="required, minlength,maxlength"

arg0 key="prompt.password"/

arg1 key="${var:minlength}" name="minlength"

resource="false"/

arg2 key="${var:maxlength}" name="maxlength"

resource="false"/

var

var-namemaxlength/var-name

var-value16/var-value

/var

var

var-nameminlength/var-name

var-value3/var-value

/var

/field

/form

/formset

/form-validation

4、定义资源文件ApplicationResources.properties

首先,资源文件必须要在struts-config.xml文件中进行定义:

message-resources parameter="com.test.struts.ApplicationResources" /

下面是资源文件中的内容,它主要关联到:

validator-rules.xml文件中validator元素中的msg属性;

validation.xml中field元素中作为参数传递给validator框架的arg0 -- arg3。

# Resources for parameter 'com.test.struts.ApplicationResources'

# Project P/ValidatorWeb

errors.header=span class="error-header1"Errors:/spanbrspan class="error-header2"You must correct the following error(s) before processing./spanul

errors.footer=/ul

errors.prefix=lispan class="error-text"

errors.suffix=/span/li

prompt.memberID=Member ID

prompt.password=Password

prompt.test=test

# Standard error messages for validator framework checks

errors.required={0} is required.

errors.minlength={0} cannot be less than {1} characters.

errors.maxlength={0} cannot be greater than {2} characters.

errors.invalid={0} is invalid.

errors.byte={0} must be an byte.

errors.short={0} must be an short.

errors.integer={0} must be an integer.

errors.long={0} must be an long.

errors.float={0} must be an float.

errors.double={0} must be an double.

errors.date={0} is not a date.

errors.range={0} is not in the range {1} through {2}.

errors.creditcard={0} is not a valid credit card number.

errors.email={0} is an invalid e-mail address.

5、在struts-config.xml中配置validator

必须在struts-config.xml中以plugin的方式指定validator的配置资源,这样,web应用在能够根据这些配置把各种校验器等资源加载到内存中。

plug-in className="org.apache.struts.validator.ValidatorPlugIn"

set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /

/plug-in

6、在相关的JSP文件中通过Struts框架中的html标签制订相应的属性值

html:javascript dynamicJavascript="true"

formName="logonForm"

staticJavascript="false"/

这个标签用于在具体的jsp生成的客户端html页面中生成一段对应的javascript代码。

html:form action="/logon" focus="memberID"

onsubmit="return validateLogonForm(this);"

/html:form

用于当用户点击html:form中的submit按钮时,会执行相应的检查,如果检查没有通过,则不回去调用Action中的execute方法。

validator.validate 什么意思

validator validate

验证器验证

词典结果:

validator[英]['vɑlɪˌdeɪtə][美]['vɑlɪˌdeɪtə]

n.验证器;

以上结果来自金山词霸

例句:

1.

Css validator: adds an easy-to-use link to the w3c css validator that you can access via a right-click context menu or from under the tools menu.

css validator:提供到w3c css验证器的易用链接,你可以通过右键的上下文菜单或者工具菜单来进行访问。

简述验证控件的作用

现在asp.net,你不但可以轻松的实现对用户输入的验证,而且,还可以选择验证在服务器端进行还是在客户端进行,再也不必考虑那么多了,程序员们可以将重要精力放在主程序的设计上了。asp.net公有六种验证控件,分别如下:控件名

功能描叙

requiredfieldvalidator(必须字段验证)

用于检查是否有输入值

comparevalidator(比较验证)

按设定比较两个输入

rangevalidator(范围验证)

输入是否在指定范围

regularexpressionvalidator(正则表达式验证)

正则表达式验证控件

customvalidator(自定义验证)

自定义验证控件

validationsummary(验证总结)

总结验证结果

下面,我们来看这些控件的使用:一、requiredfieldvalidator(必须字段验证)的使用requiredfieldvalidator控件使用的标准代码如下:<asp:requiredfieldvalidator

id="validator_name"

runat="server"

 controltovalidate="要检查的控件名"

 errormessage="出错信息"

 display="static|dymatic|none"

 >

 占位符

</asp:

requiredfieldvalidator

>在以上标准代码中:

controltovalidate:表示要进行检查控件id;

errormessage:表示当检查不合法时,出现的错误信息;

display:错误信息的显示方式;static表示控件的错误信息在页面中占有肯定位置;dymatic表示控件错误信息出现时才占用页面控件;none表示错误出现时不显示,但是可以在validatorsummary中显示;

占位符:表示display为static时,错误信息占有"占位符"那么大的页面空间;现在,让我们看一个实例:

<asp:textbox

id="txtname"

runat="server"/>

<asp:requiredfieldvalidator

id="validator1"

runat="server"

 controltovalidate="txtname"

 errormessage="姓名必须输入"

 display="static">

*姓名必须输入

</asp:requiredfieldvalidator>在以上例子中,检查txtname控件是否有输入,如果没有,显示错误信息"姓名必须输入"。是不是很简单?

注意:以上代码和下面其他控件的代码最好放入form中,和asp中不一样的是,form最好写为这样:

<form

runat="server">

其他代码

</form> 

这样,form在服务器端执行,提交才会有效;二、comparevalidator(比较验证)控件比较控件比较两个控件的输入是否符合程序设定,大家不要把比较仅仅理解为"相等",尽管相等是用的最多的,其实,这里的比较包括范围很广,大家看标准代码就会明白。比较控件的标准代码如下:

<asp:comparevalidator

id="validator_id"

runat="server"

controltovalidate="要验证的控件id"

errormessage="错误信息"

controltocompare="要比较的控件id"

type="string|integer|double|datetime|currency"

operator="equal|notequal|greaterthan|greatertanequal|lessthan|lessthanequal|datatypecheck"

display="static|dymatic|none"

占位符

</asp:comparevalidator>在以上标准代码中:

type表示要比较的控件的数据类型;

operator表示比较操作(也就是刚才说的为什么比较不仅仅是"相等"的原因),这里,比较有7种方式;

其他属性和requiredfieldvalidator相同;

在这里,要注意controltovalidate和controltocompare的区别,如果operate为greatethan,那么,必须controltocompare大于controltovalidate才是合法的,这下,应该明白它们两者的意义了吧?例子程序请参考requiredfieldvalidator控件,对照标准代码自己设计。三、rangevalidator(范围验证)控件验证输入是否在一定范围,范围用maximumvalue(最大)和minimunvlaue来确定,标准代码如下:<asp:rangevalidator

id="vaidator_id"

runat="server"

controltovalidate="要验证的控件id"

type="integer"

minimumvalue="最小值"

maximumvalue="最大值"

errormessage="错误信息"

display="static|dymatic|none"

占位符

</asp:rangevalidator>在以上代码中:

用minimumvalue和maximumvalue来界定控件输入值得范围,用type来定义控件输入值的类型。四、regularexpresionvalidator(正则表达式)控件正则表达式验证控件的功能非常强大,你可以自己容易构造验证方式,我们先来看看标准代码:<asp:regularexpressionvalidator

id="validator_id"

runat="server"

controltovalidate="要验证控件名"

validationexpression="正则表达式"

errormessage="错误信息"

display="static"

占位符

</asp:regularexpressionvalidator>在以上标准代码中,validationexpression是重点,现在来看看它的构造:

在validationexpression中,不同的字符表示不同的含义:

"."表示任意字符;

"*"表示和其他表达式一起,表示容易组合;

"[a-z]"表示任意大写字母;

"\d"表示容易一个数字;

注意,在以上表达式中,引号不包括在内;

举例:

 正则表达式:".*[a-z]"表示数字开头的任意字符组合其后接一个大写字母。五、validationsummary(验证总结)控件该控件收集本页的所有验证错误信息,并可以将它们组织以后再显示出来。其标准代码如下:<asp:validationsummary

id="validator_id"

runat="server"

headertext="头信息"

showsummary="true|false"

diaplaymode="list|bulletlist|singleparagraph"

</asp:

validationsummary

> 

在以上标准代码中,headtext相当于表的headtext,displaymode表示错误信息显示方式:list相当于html中的<br>;bulletlist相当于html中的<li>;singleparegraph表示错误信息之间不作如何分割;六、customvalidator(自定义验证)控件该控件用自定义的函数界定验证方式,其标准代码如下:<asp:customvalidator

id="validator_id"

runat="server"

controltovalidate="要验证的控件"

onservervalidatefunction="验证函数"

errormessage="错误信息"

display="static|dymatic|none"

占位符

</asp:

customvalidator

>以上代码中,用户必须定义一个函数来验证输入。

Validator怎么用

你看看这个例子吧:

title表单验证类 Validator v1.01/title

style

body,td{font:normal 12px Verdana;color:#333333}

input,textarea,select,td{font:normal 12px Verdana;color:#333333;border:1px solid #999999;background:#ffffff}

table{border-collapse:collapse;}

td{padding:3px}

input{height:20;}

textarea{width:80%;height:50px;overfmin:auto;}

form{display:inline}

/style

table align="center"

form name="theForm" id="demo" action="" method="get" onSubmit="return Validator.Validate(this,2)"

tr

td真实姓名:/tdtdinput name="Name" dataType="Chinese" msg="真实姓名只允许中文"/td

/tr

tr

td英文名:/tdtdinput name="Nick" dataType="English" require="false" msg="英文名只允许英文字母"/td

/tr

tr

td主页:/tdtdinput name="Homepage" require="false" dataType="Url" msg="非法的Url"/td

/tr

tr

td密码:/tdtdinput name="Password" dataType="SafeString" msg="密码不符合安全规则" type="password"/td

/tr

tr

td重复:/tdtdinput name="Repeat" dataType="Repeat" to="Password" msg="两次输入的密码不一致" type="password"/td

/tr

tr

td信箱:/tdtdinput name="Email" dataType="Email" msg="信箱格式不正确"/td

/tr

tr

td信箱:/tdtdinput name="Email" dataType="Repeat" to="Email" msg="两次输入的信箱不一致"/td

/tr

tr

tdQQ:/tdtdinput name="QQ" require="false" dataType="QQ" msg="QQ号码不存在"/td

/tr

tr

td身份证:/tdtdinput name="Card" dataType="IdCard" msg="身份证号码不正确"/td

/tr

tr

td年龄:/tdtdinput name="Year" dataType="Range" msg="年龄必须在18~28之间" min="18" max="28"/td

/tr

tr

td年龄1:/tdtdinput name="Year1" require="false" dataType="Compare" msg="年龄必须在18以上" to="18" operator="GreaterThanEqual"/td

/tr

tr

td**:/tdtdinput name="Phone" require="false" dataType="Phone" msg="**号码不正确"/td

/tr

tr

td手机:/tdtdinput name="Mobile" require="false" dataType="Mobile" msg="手机号码不正确"/td

/tr

tr

td生日:/tdtdinput name="Birthday" dataType="Date" format="ymd" msg="生日日期不存在"/td

/tr

tr

td邮政编码:/tdtdinput name="Zip" dataType="Custom" regexp="^[1-9]\d{5}$" msg="邮政编码不存在"/td

/tr

tr

td邮政编码:/tdtdinput name="Zip1" dataType="Zip" msg="邮政编码不存在"/td

/tr

tr

td操作系统:/tdtdselect name="Operation" dataType="Require" msg="未选择所用操作系统" option value=""选择您所用的操作系统/optionoption value="Win98"Win98/optionoption value="Win2k"Win2k/optionoption value="WinXP"WinXP/option/select/td

/tr

tr

td所在省份:/tdtd广东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="必须选定一个省份" /td

/tr

tr

td爱好:/tdtd运动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种爱好"/td

/tr

td自我介绍:/tdtdtextarea name="Description" dataType="Limit" max="10" msg="自我介绍内容必须在10个字之内"中文是一个字/textarea/td

/tr

td自传:/tdtdtextarea name="History" dataType="LimitB" min="3" max="10" msg="自传内容必须在[3,10]个字节之内"中文是两个字节t/textarea/td

/tr

tr

td colspan="2"input name="Submit" type="submit" value="确定提交"input onClick="Validator.Validate(document.getElementById('demo'))" value="检验模式1" type="button"input onClick="Validator.Validate(document.getElementById('demo'),2)" value="检验模式2" type="button"input onClick="Validator.Validate(document.getElementById('demo'),3)" value="检验模式3" type="button"/td

/tr

/form

/table

script

Validator = {

Require : /.+/,

Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,

Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,

Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,

Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-_~`@[\]\':+!]*([^\"\"])*$/,

IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,

Currency : /^\d+(\.\d+)?$/,

Number : /^\d+$/,

Zip : /^[1-9]\d{5}$/,

QQ : /^[1-9]\d{4,8}$/,

Integer : /^[-\+]?\d+$/,

Double : /^[-\+]?\d+(\.\d+)?$/,

English : /^[A-Za-z]+$/,

Chinese : /^[\u0391-\uFFE5]+$/,

UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^\*\.\(\)\[\]\{\}\?\\\/\'\"]*)|.{0,5})$|\s/,

IsSafe : function(str){return !this.UnSafe.test(str);},

SafeString : "this.IsSafe(value)",

Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))",

LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",

Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",

Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",

Range : "getAttribute('min') value value getAttribute('max')",

Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",

Custom : "this.Exec(value, getAttribute('regexp'))",

Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",

ErrorItem : [document.forms[0]],

ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"],

Validate : function(theForm, mode){

var obj = theForm || event.srcElement;

var count = obj.elements.length;

this.ErrorMessage.length = 1;

this.ErrorItem.length = 1;

this.ErrorItem[0] = obj;

for(var i=0;icount;i++){

with(obj.elements[i]){

var _dataType = getAttribute("dataType");

if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue;

this.ClearState(obj.elements[i]);

if(getAttribute("require") == "false" value == "") continue;

switch(_dataType){

case "Date" :

case "Repeat" :

case "Range" :

case "Compare" :

case "Custom" :

case "Group" :

case "Limit" :

case "LimitB" :

case "SafeString" :

if(!eval(this[_dataType])) {

this.AddError(i, getAttribute("msg"));

}

break;

default :

if(!this[_dataType].test(value)){

this.AddError(i, getAttribute("msg"));

}

break;

}

}

}

if(this.ErrorMessage.length 1){

mode = mode || 1;

var errCount = this.ErrorItem.length;

switch(mode){

case 2 :

for(var i=1;ierrCount;i++)

this.ErrorItem[i].style.color = "red";

case 1 :

alert(this.ErrorMessage.join("\n"));

this.ErrorItem[1].focus();

break;

case 3 :

for(var i=1;ierrCount;i++){

try{

var span = document.createElement("SPAN");

span.id = "__ErrorMessagePanel";

span.style.color = "red";

this.ErrorItem[i].parentNode.appendChild(span);

span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");

}

catch(e){alert(e.description);}

}

this.ErrorItem[1].focus();

break;

default :

alert(this.ErrorMessage.join("\n"));

break;

}

return false;

}

return true;

},

limit : function(len,min, max){

min = min || 0;

max = max || Number.MAX_VALUE;

return min = len len = max;

},

LenB : function(str){

return str.replace(/[^\x00-\xff]/g,"**").length;

},

ClearState : function(elem){

with(elem){

if(style.color == "red")

style.color = "";

var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];

if(lastNode.id == "__ErrorMessagePanel")

parentNode.removeChild(lastNode);

}

},

AddError : function(index, str){

this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];

this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;

},

Exec : function(op, reg){

return new RegExp(reg,"g").test(op);

},

compare : function(op1,operator,op2){

switch (operator) {

case "NotEqual":

return (op1 != op2);

case "GreaterThan":

return (op1 op2);

case "GreaterThanEqual":

return (op1 = op2);

case "LessThan":

return (op1 op2);

case "LessThanEqual":

return (op1 = op2);

default:

return (op1 == op2);

}

},

MustChecked : function(name, min, max){

var groups = document.getElementsByName(name);

var hasChecked = 0;

min = min || 1;

max = max || groups.length;

for(var i=groups.length-1;i=0;i--)

if(groups[i].checked) hasChecked++;

return min = hasChecked hasChecked = max;

},

IsDate : function(op, formatString){

formatString = formatString || "ymd";

var m, year, month, day;

switch(formatString){

case "ymd" :

m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));

if(m == null ) return false;

day = m[6];

month = m[5]--;

year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));

break;

case "dmy" :

m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));

if(m == null ) return false;

day = m[1];

month = m[3]--;

year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));

break;

default :

break;

}

if(!parseInt(month)) return false;

month = month==12 ?0:month;

var date = new Date(year, month, day);

return (typeof(date) == "object" year == date.getFullYear() month == date.getMonth() day == date.getDate());

function GetFullYear(y){return ((y30 ? "20" : "19") + y)|0;}

}

}

/script

标签: validator

“validator「validator中文教程」” 的相关文章

validator「validatorjs」

validator「validatorjs」

表单异步验证js库:async-validator async-validator 是一个表单的异步验证的第三方库,它是 的演变。也是 element-ui 中的form组件所使用的...

validator「validator vue」

validator「validator vue」

Validator校验器(解决多个异步检验) 定义一个Validator校验器,可用于表单验证,但又与表单组件相互独立,参数提供“需要校验的数据”和“校验规则”,返回“校验结果”。(React+Ty...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。