Validator={Require:/.+/,Email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,Phone:/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,Mobile:/^((\(\d{2,3}\))|(\d{3}\-))?1(3|5|7|8)\d{9}$/,Url:/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,IdCard:"this.IsIdCard(value)",Currency:/^\d+(\.\d+)?$/,Number:/^\d+$/,Zip:/^\d{6}$/,QQ:/^[1-9]\d{4,11}$/,Integer:/^[-\+]?\d+$/,Double:/^[-\+]?\d+(\.\d+)?$/,English:/^[A-Za-z]+$/,Chinese:/^[\u0391-\uFFE5]+$/,Username:/^[a-z]\w{3,}$/i,UnSafe:/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,IsSafe:function(A){return !this.UnSafe.test(A)},SafeString:"this.IsSafe(value)",Filter:"this.DoFilter(value, getAttribute('accept'))",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|0) && (value|0) < 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\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;i(((\n)|(.))*)$/)).test(value)){this.AddError(i,getAttribute("msgHtml"));this.ClearState(obj.elements[i])}else{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"IdCard":case"Date":case"Repeat":case"Range":case"Compare":case"Custom":case"Group":case"Limit":case"LimitB":case"SafeString":case"Filter":if(!eval(this[_dataType])){this.AddError(i,getAttribute("msg"))}break;default:if(!this[_dataType].test(value)){this.AddError(i,getAttribute("msg"))}else{if(getAttribute("allowHtml")=="1"&&(new RegExp(/^(((\n)|(.))*)<(((\n)|(.))*)>(((\n)|(.))*)$/)).test(value)){this.AddError(i,getAttribute("msgHtml"))}}break}}}}if(this.ErrorMessage.length>1){mode=mode||1;var errCount=this.ErrorItem.length;switch(mode){case 2:for(var i=1;iB);case"GreaterThanEqual":return(A>=B);case"LessThan":return(A=0;B--){if(C[B].checked){E++}}return A<=E&&E<=F},DoFilter:function(A,B){return new RegExp("^.+.(?=EXT)(EXT)$".replace(/EXT/g,B.split(/\s*,\s*/).join("|")),"gi").test(A)},IsIdCard:function(A){var I,D;var H="10x98765432";var G=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];var C=["","","","","","","","","","","","北京","天津","河北","山西","内蒙古","","","","","","辽宁","吉林","黑龙江","","","","","","","","上海","江苏","浙江","安微","福建","江西","山东","","","","河南","湖北","湖南","广东","广西","海南","","","","重庆","四川","贵州","云南","西藏","","","","","","","陕西","甘肃","青海","宁夏","新疆","","","","","","台湾","","","","","","","","","","香港","澳门","","","","","","","","","国外"];var B=A.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);if(B==null){return false}if(B[1]>=C.length||C[B[1]]==""){return false}if(B[2].length==12){D=A.substr(0,17);I=[B[9],B[10],B[11]].join("-")}else{D=A.substr(0,6)+"19"+A.substr(6);I=["19"+B[4],B[5],B[6]].join("-")}if(!this.IsDate(I,"ymd")){return false}var E=0;for(var F=0;F<=16;F++){E+=D.charAt(F)*G[F]}D+=H.charAt(E%11);return(A.length==15||A.length==18&&A==D)},IsDate:function(G,F){F=F||"ymd";var E,D,A,B;switch(F){case"ymd":E=G.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));if(E==null){return false}B=E[6];A=E[5]*1;D=(E[2].length==4)?E[2]:C(parseInt(E[3],10));break;case"dmy":E=G.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));if(E==null){return false}B=E[1];A=E[3]*1;D=(E[5].length==4)?E[5]:C(parseInt(E[6],10));break;default:break}if(!parseInt(A)){return false}A=A==0?12:A;var H=new Date(D,A-1,B);return(typeof(H)=="object"&&D==H.getFullYear()&&A==(H.getMonth()+1)&&B==H.getDate());function C(I){return((I<30?"20":"19")+I)|0}}};