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  [email protected] input 输入的原值 
556  [email protected] 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     

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11718.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论