利用javascript验证各种格式

时间类
   2.1 短时间,形如 (13:04:06)
       function isTime(str)
       {
         var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
         if (a == null) {alert('输入的参数不是时间格式'); return false;}
         if (a[1]>24 || a[3]>60 || a[4]>60)
         {
           alert("时间格式不对");
           return false
         }
         return true;
       }
   2.2 短日期,形如 (2003-12-05)
       function strDateTime(str)
       {
          var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
          if(r==null)return false;
          var d= new Date(r[1], r[3]-1, r[4]);
          return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
       }
   2.3 长时间,形如 (2003-12-05 13:04:06)
       function strDateTime(str)
       {
         var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
         var r = str.match(reg);
         if(r==null)return false;
         var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
       }
*************
email的判断。
       function ismail(mail)
       {
         return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
       }
***************

身份证的验证
       function isIdCardNo(num)
       {
         if (isNaN(num)) {alert("输入的不是数字!"); return false;}
         var len = num.length, re;
         if (len == 15)
           re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
         else if (len == 18)
           re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
         else {alert("输入的数字位数不对!"); return false;}
         var a = num.match(re);
         if (a != null)
         {
           if (len==15)
           {
             var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
             var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
           }
           else
           {
             var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
             var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
           }
           if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
         }
         return true;
       }

**************************
电话号码的验证

要求:
(1)电话号码由数字、"("、")"和"-"构成
(2)电话号码为3到8位
(3)如果电话号码中包含有区号,那么区号为三位或四位
(4)区号用"("、")"或"-"和其他部分隔开
(5)移动电话号码为11或12位,如果为12位,那么第一位为0
(6)11位移动电话号码的第一位和第二位为"13"
(7)12位移动电话号码的第二位和第三位为"13"
根据这几条规则,可以与出以下正则表达式:
(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
电子邮件和电话号码、手机号码正则表达式
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*|(13[0-9]{9})|(159[0-9]{8})|([0-9]{4}-[0-9]{8})|([0-9]{3}-[0-9]{8})|([0-9]{4}-[0-9]{7})

posted on 2008-03-01 19:21  石川  阅读(188)  评论(0编辑  收藏  举报