js表单验证工具包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js表单验证工具包相关的知识,希望对你有一定的参考价值。

常用的js表单验证方法大全

  1 /*
  2 非空校验  :                            isNull()
  3 是否是数字:                       isNumber(field)
  4 trim函数:                        trim() lTrim() rTrim()
  5 校验字符串是否为空:                 checkIsNotEmpty(str)
  6 校验字符串是否为整型:               checkIsInteger(str)
  7 校验整型最小值:                    checkIntegerMinValue(str,val)
  8 校验整型最大值:                    checkIntegerMaxValue(str,val) 
  9 校验整型是否为非负数:               isNotNegativeInteger(str)
 10 校验字符串是否为浮点型:             checkIsDouble(str) 
 11 校验字符串是否为日期型:             checkIsValidDate(str)
 12 校验两个日期的先后:                checkDateEarlier(strStart,strEnd)
 13 校验字符串是否为email型:           checkEmail(str)
 14 校验字符串是否为中文:               checkIsChinese(str)
 15 计算字符串的长度,一个汉字两个字符:   fucCheckLength()
 16 判断下拉列表框是否取值:             getComboValue(field) 
 17 校验电话号(传真号)                    validateTel(str)
 18 校验手机号                             validateMonoTel(str)
 19 校验字符串由字母,数字或两者组合而成     checkIsStrNum(str)
 20 验证字符串是否只由字母组合而成        checkIsChar(str)
 21 验证金额,成绩等可以带小数点数字的格式  validateResult(str,num1,num2)
 22 计算两个日期之间的差值                dateDiff(interval, date1, date2)    
 23 验证是否为,或最大长度中文两个符       isNotNull(arg1,arg2,arg3)
 24 验证输入值是否是月份                isMonth(validateMonth)
 25 验证输入值是否是年份                isYear(validateYear)
 26 --------------------------------------------------------------------
 27 验证小数和负数                        chknbr(num,opt1,opt2)
 28 //opt1 小数 opt2 负数
 29 //当opt1为1时检查num是否是小数
 30 //当opt2为1时检查num是否是负数
 31 //返回true是正确的,false是错误的        
 32 --------------------------------------------------------------------
 33 四舍五入函数:                        round(input,exact)//input 数值 exact 精确的位数
 34 得到文件的后缀名:                    getFilePostfix(oFile)  
 35 */
 36 
 37 //=================================================================
 38 //function:isNull()
 39 //非空校验
 40 //==================================================================
 41 function isNull(aForm,fieldArray)
 42 {    
 43     if (confirm("您确认要进行此操作吗?"))
 44     {
 45         for (var i=0;i<(aForm.elements.length);i++)
 46         {
 47              var el=aForm.elements[i];
 48              for(var j=1;j<=fieldArray.length;j++)
 49              {
 50                  if (el.name==fieldArray[j])
 51                 {
 52                     
 53                       if(trim(el.value)=="")
 54                       {
 55                                           
 56                         setMessage("焦点处的值不能为空:"+fieldArray[j]+"!");    
 57                         el.focus();
 58                         return true;
 59                     }
 60                   }    
 61               }
 62           }
 63           return false; 
 64     }            
 65     else
 66     {
 67         return true;
 68     }    
 69 }
 70 
 71 //==================================================================
 72 //  function isNumber(field)
 73 //    判断input text 的是否是数字. 
 74 //    return: true or false  field为空返回false
 75 //==================================================================
 76 
 77 function isNumber(field){
 78     //var re = new RegExp(/^\d+.*$/);
 79     var re = /^\d+(?=\.{0,1}\d+$|$)/;
 80     return re.test(trim(field.value));
 81 }
 82 
 83 
 84 
 85 function LTrim(str)
 86 { 
 87     var whitespace = new String(" \t\n\r");
 88     var s = new String(str);
 89     if (whitespace.indexOf(s.charAt(0)) != -1)
 90     {
 91        var j=0, i = s.length;
 92         while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
 93         {
 94            j++;
 95         }
 96         s = s.substring(j, i);
 97     }
 98     return s;
 99 }
100 function RTrim(str)
101 {
102     var whitespace = new String(" \t\n\r");
103     var s = new String(str);
104     if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
105     {
106         var i = s.length - 1;
107         while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
108         {
109             i--;
110         }
111         s = s.substring(0, i+1);
112     }
113     return s;
114 }
115 function trim(str)
116 {
117     return RTrim(LTrim(str));
118 }
119 
120 
121 
122 /********************************** Empty **************************************/
123 /**
124 *校验字符串是否为空
125 *返回值:
126 *如果不为空,定义校验通过,返回true
127 *如果为空,校验不通过,返回false        参考提示信息:输入域不能为空!
128 */
129 function checkIsNotEmpty(str)
130 {
131     if(trim(str)== "")
132         return false;
133     else
134         return true;
135 }
136 /*--------------------------------- Empty --------------------------------------*/
137 /********************************** Integer *************************************/
138 /**
139 *校验字符串是否为整型
140 *返回值:
141 *如果为空,定义校验通过,      返回true
142 *如果字串全部为数字,校验通过,返回true
143 *如果校验不通过,              返回false     参考提示信息:输入域必须为数字!
144 */
145 function checkIsInteger(str)
146 {
147     //如果为空,不通过校验
148     if(trim(str) == "")
149         return false;
150     var strr=trim(str);
151     if(new RegExp(/^(\d+)$/).test(strr))
152         return true;
153     else
154         return false;
155 }//~~~
156 /**
157 *校验整型最小值
158 *str:要校验的串。  val:比较的值
159 *
160 *返回值:
161 *如果为空,定义校验通过,                返回true
162 *如果满足条件,大于等于给定值,校验通过,返回true
163 *如果小于给定值,                        返回false              参考提示信息:输入域不能小于给定值!
164 */
165 function checkIntegerMinValue(str,val)
166 {
167     //如果为空,则通过校验
168     if(str == "")
169         return true;
170     if(typeof(val) != "string")
171         val = val + "";
172     if(checkIsInteger(str) == true)
173     {
174         if(parseInt(str,10)>=parseInt(val,10))
175             return true;
176         else
177             return false;
178     }
179     else
180         return false;
181 }//~~~
182 /**
183 *校验整型最大值
184 *str:要校验的串。  val:比较的值
185 *
186 *返回值:
187 *如果为空,定义校验通过,                返回true
188 *如果满足条件,小于等于给定值,校验通过,返回true
189 *如果大于给定值,                        返回false       参考提示信息:输入值不能大于给定值!
190 */
191 function checkIntegerMaxValue(str,val)
192 {
193     //如果为空,则通过校验
194     if(str == "")
195         return true;
196     if(typeof(val) != "string")
197         val = val + "";
198     if(checkIsInteger(str) == true)
199     {
200         if(parseInt(str,10)<=parseInt(val,10))
201             return true;
202         else
203             return false;
204     }
205     else
206         return false;
207 }//~~~
208 /**
209 *校验整型是否为非负数
210 *str:要校验的串。
211 *
212 *返回值:
213 *如果为空,定义校验通过,返回true
214 *如果非负数,            返回true
215 *如果是负数,            返回false               参考提示信息:输入值不能是负数!
216 */
217 function isNotNegativeInteger(str)
218 {
219     //如果为空,则通过校验
220     if(str == "")
221         return true;
222     if(checkIsInteger(str) == true)
223     {
224         if(parseInt(str,10) < 0)
225             return false;
226         else
227             return true;
228     }
229     else
230         return false;
231 }//~~~
232 /*--------------------------------- Integer --------------------------------------*/
233 /********************************** Double ****************************************/
234 /**
235 *校验字符串是否为浮点型
236 *返回值:
237 *如果为空,定义校验通过,      返回true
238 *如果字串为浮点型,校验通过,  返回true
239 *如果校验不通过,              返回false     参考提示信息:输入域不是合法的浮点数!
240 */
241 function checkIsDouble(str)
242 {
243     //如果为空,则通过校验
244     if(trim(str) == "")
245         return true;
246     //如果是整数,则校验整数的有效性
247     if(str.indexOf(".") == -1)
248     {
249         if(checkIsInteger(str) == true)
250             return true;
251         else
252             return false;
253     }
254     else
255     {
256         if(new RegExp(/^(\-?)(\d+)(.{1})(\d+)$/g).test(trim(str)))
257             return true;
258         else
259             return false;
260     }
261 }//~~~
262 
263 /*--------------------------------- Double ---------------------------------------*/
264 /********************************** date ******************************************/
265 /**
266 *校验字符串是否为日期型
267 *返回值:
268 *如果为空,定义校验通过,           返回false
269 *如果字串为日期型,校验通过,       返回true
270 *如果日期不合法,                   返回false    参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
271 */
272 function checkIsValidDate(str)
273 {
274     //如果为空,则通过校验
275     if(trim(str) == "")
276         return false;
277     var pattern = new RegExp(/^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g);
278     if(!pattern.test(str))
279         return false;
280     var arrDate = str.split("-");
281     if(parseInt(arrDate[0],10) < 100)
282         arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
283     var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
284    // date.getYear() == arrDate[0]
285     //   &&
286     if( date.getMonth() == (parseInt(arrDate[1],10) -1)+""
287        && date.getDate() == arrDate[2])
288         return true;
289     else
290         return false;
291 }
292 /**
293 *校验字符串是否为日期型 YYYY-MM-DD
294 *返回值:
295 *如果为空,定义校验通过,           返回true
296 *如果字串为日期型,校验通过,       返回true
297 *如果日期不合法,                   返回false    参考提示信息:输入域的时间不合法!(yyyy-MM-dd)
298 */
299 function isDate(str)
300 {
301     //如果为空,则通过校验
302     if((null != str && "null" != str) && "" == str)
303         return true;
304     //校验日期 格式为YYYY-MM-DD
305     var pattern = new RegExp(/^(\d{4})-(\d{1,2})-(\d{1,2})$/g);
306     if(!pattern.test(str))
307         return false;
308     var arrDate = str.split("-");
309     var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
310     if( date.getMonth() == (parseInt(arrDate[1],10) -1)+""
311        && date.getDate() == arrDate[2])
312         return true;
313     else
314         return false;
315 }
316 
317 function isYearValidate(str)
318 { 
319 
320    if(‘‘ == str){
321       return true;
322    }else{
323     var pattern = new RegExp(/^(\d{4})$/g);
324      if(!pattern.test(str)){
325        return false;
326      }
327      return true;
328    }
329    return false;
330 }
331 /*
332 function checkIsValidDate(aForms,fieldArray)
333 {
334     //如果为空,则通过校验
335     for (var i=0;i<(aForms.elements.length);i++)
336     {
337          var el=aForms.elements[i];
338          for(var j=0;j<fieldArray.length;j++)
339          {
340              if (el.name==fieldArray[j])
341               {
342                   if(el.value =="")
343                   {
344                     return true;
345                 }
346                 else
347                 {
348                     var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
349                     if(!pattern.test(el.value))
350                         return false;
351                     var arrDate = el.value.split("-");
352                     if(parseInt(arrDate[0],10) < 100)
353                         arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
354                     var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
355                     if(date.getYear() == arrDate[0]
356                        && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
357                        && date.getDate() == arrDate[2])
358                         return true;
359                     else
360                         return false;
361                  }
362              }    
363          }          
364     }    
365     
366 }*/
367 //~~~
368 /**
369 *校验两个日期的先后
370 *返回值:
371 *如果其中有一个日期为空,校验通过,          返回true
372 *如果起始日期早于等于终止日期,校验通过,   返回true
373 *如果起始日期晚于终止日期,                 返回false    参考提示信息: 起始日期不能晚于结束日期。
374 */
375 function checkDateEarlier(strStart,strEnd)
376 {
377     if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
378         return false;
379     //如果有一个输入为空,则通过检验
380     if (( strStart == "" ) || ( strEnd == "" ))
381         return true;
382     var arr1 = strStart.split("-");
383     var arr2 = strEnd.split("-");
384     var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
385     var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
386     if(arr1[1].length == 1)
387         arr1[1] = "0" + arr1[1];
388     if(arr1[2].length == 1)
389         arr1[2] = "0" + arr1[2];
390     if(arr2[1].length == 1)
391         arr2[1] = "0" + arr2[1];
392     if(arr2[2].length == 1)
393         arr2[2]="0" + arr2[2];
394     var d1 = arr1[0] + arr1[1] + arr1[2];
395     var d2 = arr2[0] + arr2[1] + arr2[2];
396     if(parseInt(d1,10) > parseInt(d2,10))
397        return false;
398     else
399        return true;
400 }
401 //~~~
402 /*--------------------------------- date -----------------------------------------*/
403 /********************************** email *****************************************/
404 /**
405 *校验字符串是否为email型
406 *返回值:
407 *如果为空,定义校验通过,           返回true
408 *如果字串为email型,校验通过,      返回true
409 *如果email不合法,                  返回false    参考提示信息:Email的格式不正確!
410 */
411 function checkEmail(str)
412 {
413     //如果为空,则通过校验
414     if(trim(str) == "")
415         return true;
416     if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf(‘@‘, 0) == -1
417         || str.indexOf(‘.‘, 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
418         return false;
419     else
420         return true;
421 }//~~~
422 /*--------------------------------- email ----------------------------------------*/
423 /********************************** chinese ***************************************/
424 /**
425 *校验字符串是否为中文
426 *返回值:
427 *如果为空,定义校验通过,           返回true
428 *如果字串为中文,校验通过,         返回true
429 *如果字串为非中文,             返回false    参考提示信息:必须为中文!
430 */
431 function checkIsChinese(str)
432 {
433     //如果值为空,通过校验
434     if (str == "")
435         return true;
436     var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
437     if (pattern.test(str))
438         return true;
439     else
440         return false;
441 }
442 
443 
444 
445 //判断下拉列表框是否取值
446 function getComboValue(field)
447 {
448     if (document.getElementById(field).value=="")
449     {
450         setMessage(‘请选择‘);
451         document.forms[0].field.focus();
452         return;
453     }    
454 }
455 //是否为有效年
456 function isYear(aForm,field)
457 {
458         for (var i=0;i<(aForm.elements.length);i++)
459         {
460              var el=aForm.elements[i];
461                   if (el.name==field)
462                 {                    
463                       if (document.getElementById(field).value>=1900 && document.getElementById(field).value<=2053)
464                     {
465         
466                     }
467                     else
468                     {
469                         //setMessage(‘当前年份无效!‘);
470                         //aForm.field.focus();
471                         return false;
472                     }
473               }    
474               
475           }
476           return true;     
477 }
478 function JHshNumberText()
479 {
480   if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
481   || (window.event.keyCode == 13) || (window.event.keyCode == 46)
482   || (window.event.keyCode == 45)))
483   {
484           window.event.keyCode = 0 ;
485    }
486 }
487 
488 
489 //函数名:fucCheckLength
490 //功能介绍:检查字符串的长度
491 //参数说明:要检查的字符串
492 //返回值:长度值
493 
494 function fucCheckLength(strTemp)
495 {
496  var i,sum;
497  sum=0;
498  for(i=0;i<strTemp.length;i++)
499  {
500   if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
501    sum=sum+1;
502   else
503    sum=sum+2;
504  }
505  return sum;
506 }
507 //add by hongxin_ma
508 //opt1 小数 opt2 负数
509 //当opt1为1时检查num是否是小数
510 //当opt2为1时检查num是否是负数
511 //返回true是正确的,false是错误的
512 function chknbr(num,opt1,opt2)
513 {
514     //第一个字符为"." 返回false
515     if(num.charAt(0)==‘.‘)return false;
516     var i=num.length;
517     var staus;
518     //staus用于记录.的个数
519     status=0;
520     if ((opt2!=1) && (num.charAt(0)==‘-‘))
521     {
522     //setMessage("You have enter a invalid number.");
523     return false;
524     }
525     //当最后一位为.时出错
526     if (num.charAt(i-1)==‘.‘)
527     {
528     //setMessage("You have enter a invalid number.");
529     return false;
530     }
531 
532     for (j=0;j<num.length ; j++){
533         if (num.charAt(j)==‘.‘)
534         {
535             status++;
536         }
537         if (status>1) 
538         {
539             //setMessage("You have enter a invalid number.");
540             return false; 
541         }
542         if (num.charAt(j)<‘0‘ || num.charAt(j)>‘9‘ )
543         {
544             if (((opt1==0) || (num.charAt(j)!=‘.‘)) && (j!=0)) 
545             {
546             //setMessage("You have enter a invalid number.");
547             return false;
548             }
549         }
550     }
551         return true;
552 }
553 /*
554  *add by hongxin_ma四舍五入函数
555  *@param input 输入的原值
556  *@param exact 精确的位数
557  */
558 function round(input,exact){
559     if(exact==0){
560         if(new RegExp(/^\d+.*$/).test(input))
561         {
562             input=parseFloat(input)+0.5;
563             return parseInt(input,‘10‘);
564         }else if(new RegExp(/^\-\d+.*$/).test(input)){
565             input=parseFloat(input)-0.5;
566             return parseInt(input,‘10‘);
567         }
568         else
569         {
570             return input
571         };
572     }
573     var substract = ‘0.‘;
574     var result = ‘‘;
575     for(var i=0;i<exact;i++){
576         substract+=‘0‘;
577     }
578     substract+=‘5‘;
579     try{
580         if(parseFloat(input)>0)
581         {
582             result = parseFloat(input)+parseFloat(substract);
583         }else
584         {
585             result = parseFloat(input)-parseFloat(substract);
586         }
587         result = result.toString();
588         var end = parseInt(result.indexOf("."),"10")+parseInt(exact,"10")+1;
589         result = result.substring(0,end);
590     }catch(e){
591         return result;
592     }
593     if(result==-0)
594     {
595         result = Math.abs(result);    
596     }
597     return result;
598 }
599 
600     /**
601      * add by hongpeng_dong  2007.05.11
602      * 验证字符串是否是电话号码,传真
603      * 区号为3-4位 可以不写 区号后可以带一个-号,号码为3-8位) 
604      * 允许空值
605      * @param 字符串
606      * @return 合理true 否则为false 空返回true
607      */
608      function validateTel(str){
609         if(‘‘ == trim(str))
610             return true;
611         var pattern = new RegExp(/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)/);
612         return pattern.exec(str);
613     }
614     /**
615      * add by hongpeng_dong  2007.12.11
616      * 验证字符串是否是电话号码,传真
617      * 格式为 区号(3-4位)-号码(3-8位) 如:0431-85667788 
618      * 允许空值
619      * @param 字符串
620      * @return 合理true 否则为false 空返回true
621      */
622      function validateTelToo(str){
623         if(‘‘ == trim(str))
624             return true;
625         var pattern = new RegExp(/^[0-9]{3,4}\-[0-9]{3,8}$/);
626         return pattern.exec(str);
627     }
628     
629     /**
630      * add by hongpeng_dong  2007.05.11
631      * 验证字符串是否是手机号 (必须以1打头 前面可以加0 其它为10位) 
632      * 允许空值
633      * @param 字符串
634      * @return 合理true 否则为false 空返回true
635      */
636      function validateMonoTel(str){
637         if(‘‘ == trim(str))
638             return true;
639         var pattern = new RegExp(/^0{0,1}1[0-9]{10}$/);
640         return pattern.test(str);
641     }
642     
643     /**
644      * add by hongpeng_dong  2007.04.03
645      * 验证字符串是否只由字母,数字或两者组合而成
646      * @param 字符串
647      * @return 是true 非false
648      */
649     function checkIsStrNum(str){
650         if(new RegExp(/^[a-zA-Z0-9]*$/g).test(str)){   
651             return true;
652          }
653          return false;
654     }    
655     
656     /**
657      * add by chun_chang  2007.05.15
658      * 验证字符串是否只由字母组合而成
659      * @param 字符串
660      * @return 是true 非false
661      */
662     function checkIsChar(str){
663         if(new RegExp(/^[a-zA-Z]*$/g).test(str)){
664             return true;
665          }
666          return false;
667     }
668     
669     /**
670      * add by hongpeng_dong  2007.05.12
671      * 验证金额,成绩等可以带小数点数字的格式
672      * @param str(要验证的字符串) num1(整数部分允许的最大长度) num2(小数点后允许的最大长度)
673      * num1 num2 要求均为大于0的正整数 否则直接返回false
674      * @return 格式正确true 不正确false 
675      * (正确格式可以为不含小数点的正整数,长度最大为传入的数值;如果str为空,返回true)
676      */
677      function validateResult(str,num1,num2){
678          if(‘‘ == trim(str))
679              return true;
680         if(num1 ==0 || num2 == 0)
681             return false;
682          var v1 = ‘‘;
683          var v2 = ‘‘;
684          if(num1 != 1)
685              v1=‘,‘ + num1;
686          if(num2 != 1)
687              v2 = ‘,‘+num2;
688         var re = new RegExp(‘\(^[0-9]{1‘+v1+‘}\\.[0-9]{1‘+v2+‘}$)|(^[0-9]{1‘+v1+‘}$)‘);
689         return re.test(str);
690     }
691     
692      /**
693        *    计算两个日期之间的差值
694       * 使用方法:(eg): alert(dateDiff(‘h‘, ‘2007-4-14‘, ‘2007-4-19‘));  
695       *    h 表示 HOUR, D 表示 day, M 表示 minute, s 表示 second 
696        */
697     function dateDiff(interval, date1, date2)
698      {
699       var objInterval = {‘D‘ : 1000 * 60 * 60 * 24, ‘H‘ : 1000 * 60 * 60, ‘M‘ : 1000 * 60, ‘S‘ : 1000};
700       interval = interval.toUpperCase();
701       var dt1 = Date.parse(date1.replace(/-/g, ‘/‘));
702       var dt2 = Date.parse(date2.replace(/-/g, ‘/‘));
703       try
704       {
705        return Math.round((dt2 - dt1) / eval(‘(objInterval.‘ + interval + ‘)‘));
706       }
707       catch (e)
708       {
709        return e.message;
710       }
711       dt1 = null;
712       dt2 = null;
713       objInterval = null;
714      } 
715     
716 /*
717    add by sihua_yao
718    校验网站url 
719    只允许输入http:// https://的
720    参数 :url 为对象
721 */
722 function checkWebUrl(url)
723    {
724         if(url.value==""||url.value=="http://"||url.value=="https://")
725         {
726             setMessage ("请填写正确的网址!如http://www.ideal.com!");
727             return false;
728         }
729         
730         if(url.value.length<8)
731         {
732             setMessage("请填写正确的网址!如http://www.ideal.com!");
733             //url.focus();
734             return false;
735         }
736          
737        if ( url.value.substring(0, 7)!="http://" && url.value.substring(0, 8)!="https://" )
738        {
739             setMessage ("请填写正确的网址!如http://www.ideal.com!");
740             return false;
741        }
742         
743         if(url.value.substring(0, 7)=="http://")
744         {
745             var s="";
746             
747             s=url.value.substring(7,url.value.length);
748             
749             var a=s.indexOf(".", 0); 
750             
751             if(a=="-1")
752             {
753                 setMessage ("请填写正确的网址!如http://www.ideal.com!");
754                 //url.focus();
755                 return false;
756             }
757             
758             var s1=s.substring(a+1,s.length)
759             var b=s1.indexOf(".", 0);
760             
761             if(b=="-1")
762             {
763                 setMessage ("请填写正确的网址!如http://www.ideal.com!");
764                 //url.focus();
765                 return false;
766             }
767             
768             return true;
769         }
770         
771         if(url.value.substring(0, 8)=="https://")
772         {
773             var s="";
774             s=url.value.substring(8,url.value.length);
775             var a=s.indexOf(".", 0); 
776             
777             if(a=="-1")
778             {
779                 setMessage ("请填写正确的网址!如http://www.ideal.com!");
780                 //url.focus();
781                 return false;
782             }
783             
784             var s1=s.substring(a+1,s.length)
785             var b=s1.indexOf(".", 0);
786             
787             if(b=="-1")
788             {
789                 setMessage ("请填写正确的网址!如http://www.ideal.com!");
790                 //url.focus();
791                 return false;
792             }
793             return true;
794         }
795   }
796   
797 /**
798 * added by hongpeng_dong 2007.11.21
799 * 得到文件的后缀名
800 * oFile为file控件对象
801 */
802 function getFilePostfix(oFile)
803 {
804      if(oFile == null)
805          return null;
806      var pattern = /(.*).(.*)$/gi;
807      if(typeof(oFile) == "object")
808      {
809          if(oFile.value == null || oFile.value == "")
810              return null;
811          var arr = pattern.exec(oFile.value);
812          return RegExp.$2;
813      }
814      else if(typeof(oFile) == "string")
815      {
816          var arr = pattern.exec(oFile);
817          return RegExp.$2;
818      }
819      else
820          return null;
821 }
822 /**
823  * add by wei_liu at 2007-02-3
824  * 验证是否为空
825  * arg1为验证的文档的id
826  * arg2为验证的文档名称
827  * aarg3文档的最大长度,可以不用验证,只需传递两个前个就可以
828  * example  funcion aa(){
829  *   if(!isNotNull(‘voteTitle‘,"标题",20)){return ;}
830  *    其它操作other action
831  *   }
832  * 也可以不用验证长度
833  * example function aa(){
834  * if(!isNotNull(‘voteTitle‘,"标题")){return ;}
835  * }
836  * ***********************验证通过返回true
837  */
838  function isNotNull(arg1,arg2,arg3)
839    {
840     if(document.getElementById(arg1)){
841      if(trim(document.getElementById(arg1).value) ==‘‘)
842      {
843        setMessage(‘请填写‘+arg2+‘!‘);
844        return false;
845      }
846      if(arg3 !=‘‘ && typeof(arg3)!=‘‘ && arg3 !=null && arg3 != ‘undefined‘)
847      {
848         if(!maxLongById(arg1,arg3,arg2)){return false;}
849      }
850      return true;
851      }else{
852        setMessage(‘你要验证的字段不存在或ID重复定义‘);
853        return false;
854      }
855    }
856 /**
857  * add by wei_liu at 2007-02-3
858  * 验证长度
859  * arg1为验证的文档的id
860  * arg2文档的最大长度
861  * arg3为验证的文档名称
862  * ***********************验证通过返回true
863  */
864  function maxLongById(arg1,arg2,arg3)
865  //str.replace(/[^\x00-\xff]/g,"**").length
866    {
867     if(document.getElementById(arg1)){
868      var str     =document.getElementById(arg1).value;
869      var mLength =str.replace(/[^\x00-\xff]/g,"**").length;
870      if(mLength>arg2)
871      {
872        setMessage(arg3+‘不能超过‘+arg2+‘个字符或‘+(arg2/2)+‘个汉字!‘);
873        return false;
874      }
875      return true;
876     }else{
877        setMessage(‘你要验证的字段不存在或ID重复定义‘);
878        return false;
879     }
880   }
881 /**
882  * add by wei_liu at 2007-02-3
883  * 验证是否为空
884  * arg1为验证的文档的value
885  * arg2为验证的文档名称
886  * aarg3文档的最大长度,可以不用验证,只需传递两个前个就可以
887  * example  funcion aa(){
888  *   if(!isNotNull(‘voteTitle‘,"标题",20)){return ;}
889  *    其它操作other action
890  *   }
891  * 也可以不用验证长度
892  * example function aa(){
893  * if(!isNotNull(‘voteTitle‘,"标题")){return ;}
894  * }
895  * ***********************验证通过返回true
896  */
897   function isNotNullValue(arg1,arg2,arg3)
898    {
899   
900      if(trim(arg1) ==‘‘ || typeof(arg1)==‘undefined‘)
901      {
902        setMessage(‘请填写‘+arg2+‘!‘);
903        return false;
904      }
905      if(arg3 !=‘‘ && typeof(arg3)!=‘‘ && arg3 !=null &&arg3 != ‘undefined‘)
906      {
907         if(!maxLongByValue(arg1,arg3,arg2)){return false;}
908      }
909      return true;
910    
911   }
912 /**
913  * add by wei_liu at 2007-02-3
914  * 验证长度
915  * val1为验证的文档的value
916  * val2文档的最大长度
917  * val3为验证的文档名称
918  * ***********************验证通过返回true
919  */
920   function  maxLongByValue(val1,val2,val3){
921     var mLength = val1.replace(/[^\x00-\xff]/g,"**").length;
922      if(mLength>val2)
923      {
924        setMessage(val3+‘不能超过‘+val2+‘个字符或‘+(val2/2)+‘个汉字!‘);
925        return false;
926      }
927      return true;
928   }
929   
930 /**
931 * added by hongpeng_dong 2008.3.11
932 * 判断输入值是否是月份
933 * param:validateMonth 要验证的值 
934 * 是true 否false
935 */
936   function isMonth(validateMonth){
937       var pattern = new RegExp(/(^[0]{0,1}[1-9]$)|(^1[0-2]$)/);
938       return pattern.test(validateMonth);
939   }
940 
941 /**
942 * added by hongpeng_dong 2008.3.11
943 * 判断输入值是否是年份
944 * param:validateYear 要验证的值 
945 * 是true 否false
946 */
947   function isYear(validateYear){
948       var pattern = new RegExp(/^[1-9][0-9]{3}$/);
949       return pattern.test(validateYear);
950   }
951  
952     
953 
954 
955     

 

以上是关于js表单验证工具包的主要内容,如果未能解决你的问题,请参考以下文章

ajaxFileUpload上传带参数文件及JS验证文件大小

JS表单验证代码

js验证表单不能填数字怎么判断?

js表单验证

js表单验证的问题

史上最全JS表单验证封装类