zoukankan      html  css  js  c++  java
  • JavaScript校验学习总结

    //校验是否为空
    function IsNotEmpty(con,desc,flag){
        var org = deleteSpace(con.value);
     if (org == ""){
         alert(desc + "不能为空!");
         if  (flag == "1") {
             con.focus();
         }
         return false;
     } else {
      return true;
     }
    }

    //校验是否为正确的日期格式
    function IsDate(sdate,desc){   //判断日期型是否满足格式yyyy-mm-dd(10位)

        if  (sdate.value == ""){
            return true;
        }
        else{

        if  (sdate.value.length!=10){  //判断长度是否10位
                alert(desc+"错误:日期型长度必须是10位!");
                sdate.focus();
              return false;
         }
         else{
                var yyyy='';
                var mm='';
                var dd='';
                s=/\d{4}[-]\d{2}[-]\d{2}/;
                ok=s.exec(sdate.value);
                if  (ok==null){
                    alert(desc+"日期格式检测错误!\n必须是 'yyyy-mm-dd'格式输入!");
                    sdate.focus();
                 return(false);
                }
                else{
                    yyyy=sdate.value.substring(0,4);
                    mm=sdate.value.substring(5,7);
                    dd=sdate.value.substring(8,10);
                    if  (yyyy<1900||yyyy>2130){
                        alert(desc+"Error: year beyond mark!\n请重新输入!");
                        sdate.focus();
                     return(false);
                    }
                    else if(mm<0||mm>12){
                     alert(desc+"Error: month beyond the mark!\n请重新输入!");
                     sdate.focus();
                     return(false);
                    }
                    else if(dd<0||dd>31){
                     alert(desc+"Error: day beyond the mark!\n请重新输入!");
                     return(false);
                    }
                    else return(true);
                }
            }
        }
    }

    //校验是否为正确的日期时间格式
    function IsDateTime(sdate,desc){   //判断日期型是否满足格式yyyy-mm-dd hh:mm:ss(19位)

        if  (sdate.value == ""){
            return true;
        }
        else{

        if  (sdate.value.length!=19){  //判断长度是否10位
                alert(desc+"错误:日期型时间长度必须是19位!");
                sdate.focus();
              return false;
         }
         else{
                var yyyy = '';
                var mm   = '';
                var dd   = '';
                var hh   = '';
                var mi   = '';
                var ss   = '';
                s=/\d{4}[-]\d{2}[-]\d{2}[\s]\d{2}[:]\d{2}[:]\d{2}/;
                ok=s.exec(sdate.value);
                if  (ok==null){
                    alert(desc+"日期格式检测错误!\n必须是 'yyyy-mm-dd hh:mm:ss'格式输入!");
                    sdate.focus();
                 return(false);
                }
                else{
                    yyyy = sdate.value.substring(0,4);
                    mm   = sdate.value.substring(5,7);
                    dd   = sdate.value.substring(8,10);
                    hh   = sdate.value.substring(11,13);
                    mi   = sdate.value.substring(14,16);
                    ss   = sdate.value.substring(17,19);
                    if  (yyyy<1900||yyyy>2130){
                        alert(desc+"Error: year beyond mark!\n请重新输入!");
                        sdate.focus();
                     return(false);
                    }
                    else if(mm<0||mm>12){
                     alert(desc+"Error: month beyond the mark!\n请重新输入!");
                     sdate.focus();
                     return(false);
                    }
                    else if(dd<0||dd>31){
                     alert(desc+"Error: day beyond the mark!\n请重新输入!");
                     return(false);
                    }
                    else if(hh<0||hh>24){
                     alert(desc+"Error: hour beyond the mark!\n请重新输入!");
                     return(false);
                    }
                    else if(mi<0||mi>60){ 
                     alert(desc+"Error: minute beyond the mark!\n请重新输入!");
                     return(false);
                    }
                    else if(ss<0||ss>60){
                     alert(desc+"Error: second beyond the mark!\n请重新输入!");
                     return(false);
                    }
                    else return(true);
                }
            }
        }
    }

    //校验是否数值
    function IsNumber(snum,desc){   //判断是否合法数字,比如:6.1,100 合法 ;。34,100。 不合法
        if  (snum.value == ""){
            return false;
        }
        else{
            s1=/[^0-9.]+/;
            if  (snum.value.length == 1){
                s2=/[0-9]+/;
            }           
            else{
                s2=/[0-9]+[.]?[0-9]+/;
            }
            s3=/[.]+\w*[.]+/;
            ifpoint1=snum.value.substring(snum.value.length-1,snum.value.length);
            ifpoint2=snum.value.substring(0,1);
            ifpoint3=snum.value.substring(1,2);

            if  (ifpoint1=="."||ifpoint2=="."){
              alert(desc+"错误:数字头不能是'.'");
             return false;
            }
            if  (ifpoint2=="-"||ifpoint3=="-"){
              alert(desc+"错误:不能为负值");
             return false;
            }       
            if  (ifpoint2=="0"&&ifpoint3=="-"){
              alert(desc+"错误:非法数值");
             return  false;
            }
            ok1=s1.exec(snum.value);
            ok2=s2.exec(snum.value);
            ok3=s3.exec(snum.value);
            if  ((ok1==null)&&(ok2!=null)&&(ok3==null))
             return true
            else{
             alert(desc+"非法数字!\n请重新输入!")
             return false;
         }
        }
    }

    //校验是否有标记被选择
    function IsSelected(theform,desc){
        var ilength = theform.elements.length;
        var count = 0;
        for (i=0;i<ilength;i++){
            if  (theform.elements[i].type=="checkbox" && theform.elements[i].checked==true){
                count++;
            }
        }
        if  (count == 0){
            alert("对不起,您没有选择"+desc+"!");
            return false;
        }
        else return true;
    }

    //校验是否有标记被选择
    function IsChecked(theform,desc){
        var ilength = theform.elements.length;
        var count = 0;
        for (i=0;i<ilength;i++){
            if  (theform.elements[i].type=="radio" && theform.elements[i].checked==true){
                count++;
            }
        }
        if  (count == 0){
            alert("对不起,您没有选择"+desc+"!");
            return false;
        }
        else return true;
    }

    //下拉列表判断
    function IsSelectedField(fieldstr,desc){
        if(fieldstr.selectedIndex>-1) return true;
        else{
            alert("对不起,您没有选择"+desc+"!");
            return false;
        }
    }

    //校验结束日期是否大于开始日期
    function IsHighDate(fieldstr,desc){
        if  (!IsDate(fieldstr,desc)) return false;
        else{
            var sedname = fieldstr.name;
            var sedvalue = fieldstr.value;
            var iedlength = sedname.length;
            var si = sedname.substring(iedlength-1,iedlength);
            var sstname = "sd"+si;
            var s = "document.form3."+sstname+".value";
            var sstvalue = eval(s);
            if  (sstvalue == "") {
                return true;
            }
            else if((sedvalue > sstvalue) || (sedvalue == sstvalue)){
                return true;
            }
            else{
                alert(desc+"应大于开始时间");
                fieldstr.focus();
                return false;
            }
        }
    }

    //日期输入判断
    function IsBiggerDate(bdate,edate){
     if(edate.value>=bdate.value){
      return true;
     }else{
      alert("终止日期必须大于开始日期!");
      bdate.focus();
      return false;
     }
    }
     
    //校验表单中动态数组大小比较
    function IsDiaHigh(stheform,ilength,sbstrm,sbdesc,sestrm,sedesc,sflagm){
        var i=0;
     for (i=0;i<ilength;i++){
      var tempflagm=sflagm+i;
      var tempflagv=eval(stheform+"."+tempflagm+".checked");
      if  (tempflagv == true){
       var tempbstrm=sbstrm+i;
       var tempestrm=sestrm+i;
       var tempbstrv=eval(stheform+"."+tempbstrm+".value");
       var tempestrv=eval(stheform+"."+tempestrm+".value");
       if  (tempbstrv>tempestrv){
        var j=i+1;
        alert("第"+j+"行输入有误,"+sbdesc+"不应大于"+sedesc);
        return false;
          }
      }
        }
        return true;
    }

    //表单判断
    function IsOneOnly(stheform,ilength,sfieldm,sfdesc,sfield2m,sf2desc,sfvalm,descv,sflagm){
        var i = 0;
        var count = 0;
        for (i=0;i<ilength;i++){
         var j = i+1;
         var tempflagm = sflagm+i;
         var tempflagv = eval(stheform+"."+tempflagm+".checked");
         var tempfieldm = sfieldm+i;
         var tempfieldv = eval(stheform+"."+tempfieldm+".value");
         if  ((tempflagv == true) && (tempfieldv == "0")){
          count++;
          var tempfield2m = sfield2m+i;
          var tempfield2v = eval(stheform+"."+tempfield2m+".value");
          var tempfvalm = sfvalm+i;
          var tempfvalv = eval(stheform+"."+tempfvalm+".value");
          if  (tempfield2v == ""){
           alert("第"+j+"行的"+sf2desc+"不能为空!");
           return false;
             }
             else{
                 var truefield2v = parseFloat(tempfield2v);
                 if  (tempfvalv == ""){
                     var truefvalv = 0;
                 }
                 else{
                  var truefvalv = parseFloat(tempfvalv);
                
                 }
                 if  (truefield2v > truefvalv){
                  alert("第"+j+"行的"+sf2desc+"应大于0且小于当前"+descv+"("+truefvalv+")!");
                  return false;
                 }
             }
         }
        }
        if  (count != 1){
         alert("原商品有且只能有一种,请检查您的输入!");
         return false;
        }
        return true;
    }

    //校验当前域值是否小于某一值(>0)
    function IsLower(fieldstr,descf,dvalue,descv){
     if  ((!IsEmpty(fieldstr,descf,"1")) || (!IsInteger(fieldstr,descf)))   return false;
     else{
         var thisvalue = parseFloat(fieldstr.value);
         if  ((thisvalue == 0) || (thisvalue > dvalue)){
          alert(descf+"应大于0且小于当前"+descv+"("+dvalue+")!");
          fieldstr.focus();
          return false;
         }
         return true;
     }
    }

    //数字判断
    function IsHigh(lfield,hfield,ldesc,hdesc){
     var ltempval = lfield.value;
     var htempval = hfield.value;
     if  (ltempval > htempval){
      alert(hdesc+"不小于"+ldesc);
      return false;
     }
     else{
         return true;
     }
    }

    //数字输入
    function IsNumHigh(lfield,hnum,ldesc,hdesc){
     if  (!IsNumber(lfield,ldesc)){
      alert(ldesc+"不是数字,请检查您的输入!");
      lfield.focus();
      return false;
     }
     else{
         var lnum = parseFloat(lfield.value);
         if  (lnum < hnum){
          alert(ldesc+"的值应大于"+hdesc+hnum);
          lfield.focus();
          return false;
         }
         reutrn true;
     }
    }

    //判断长度
    function IsOverLen(fieldstr,ilength,desc){
     if  (fieldstr.value == "")  return true;
     else{
         var itemplen = fieldstr.value.length;
         if  (itemplen > ilength){
          alert(desc+"的长度不应大于"+ilength);
          fieldstr.focus;
          return false;
         }
            return true;
     }
    }

    //判断下一步操作
    function IsNext(icount,desc){
     if  (icount > 0){
      return true;
     }
     else{
         alert("对不起,文中没有"+desc+",不能进行下一步操作!");
         return false;
     }

    //判断时间
    function IsTime(ctime,desc){
        if (ctime.value.length == 0) return true;
        var s  = /^(([0-9]|[01][0-9]|2[0-3])(:([0-9]|[0-5][0-9])){0,2}|(0?[0-9]|1[0-1])(:([0-9]|[0-5][0-9])){0,2}\s?[aApP][mM])?$/;
        var ok = exec(ctime.value);
        if(ok!=null){
            return true;
        }
        else{
            alert(desc+"非法时间!\n请重新输入!");
            ctime.focus();
            return false;
        }
    }

    //字符串多余空格
    function StrTrim(input){
        var s=/(\s*)([\s*\S*]*)(\S+)/;
        s.exec(input)
        if(s.exec(input)==null){return ""}
        return RegExp.$2+RegExp.$3
    }

    //判断是否为正数
    function IsVNumber(snum,desc){   
        if  (snum == ""){
         alert("请输入"+desc);
            return false;
        }
        else{
            s1=/[^0-9.]+/;
            if  (snum.length == 1){
                s2=/[0-9]+/;
            }           
            else{
                s2=/[0-9]+[.]?[0-9]+/;
            }
            s3=/[.]+\w*[.]+/;
            ifpoint1=snum.substring(snum.length-1,snum.length);
            ifpoint2=snum.substring(0,1);
            if  (ifpoint1=="."||ifpoint2=="."){
              window.alert(desc+"错误:数字头不能是'.'");
             return(false);
            }
            ok1=s1.exec(snum);
            ok2=s2.exec(snum);
            ok3=s3.exec(snum);
            if  ((ok1==null)&&(ok2!=null)&&(ok3==null)){
                var tempnum = parseFloat(snum);
                    if  (tempnum > 0)
                  return true;
             else{
                  alert(desc+"应大于0");
                  return false;
             }
     }
            else{
             alert(desc+"非法数字!\n请重新输入!");
             return false;
         }
        }
    }

    //校验数量是否为整数(正整数,负整数,0)
    function IsNumberInt(snum,desc)  
    {   
         if  (snum.value == "")
         {
             return false;
         }
         else
         {
             s1=/[^0-9]+/;
             s2=/[a-z]+/;
             s3=/[\-][0-9]+/;
             s4=/[.]+/;
             ifpoint1=snum.value.substring(snum.value.length-1,snum.value.length);
             ifpoint2=snum.value.substring(0,1);
             ifpoint3=snum.value.substring(1,2);
           
             if  (ifpoint1=="."||ifpoint2==".")
             {
                alert(desc+"错误:数字头不能是'.'");
              return false;
             }
             if  (ifpoint1=="-"&&ifpoint2=="-")
             {
                alert(desc+"输入数据错误:'-'");
              return false;
             }
     
             ok1=s1.exec(snum.value);
             ok2=s2.exec(snum.value);
             ok3=s3.exec(snum.value);
             ok4=s4.exec(snum.value);
             if  ((ok1==null))           //0,正整数
           {  
              return true;
           }
             else
             {
            if (ok4==null&&ok2==null&&ok3!=null&&ifpoint2=="-"&&ifpoint3!="-")
             {
                //alert(desc+"为负整数!!!!");
                 return true;
             }
             else
             {
               if(ok2!=null)
               { 
                alert(desc+"非法数字!\n请重新输入!");
               }
               if (ok4!=null)
               {
                alert(desc+"数量应该为整数!\n请重新输入!");
               }
               return false;
              }
           }
            }
       }   

    //校验是否为正整数  
    function IsInt(snum,desc)
    {   
        if  (snum.value == ""){
            return false;
        }
        else{
            s1=/[^0-9]+/;
            ifpoint1=snum.value.substring(0,1);
            if  (ifpoint1=="0"||ifpoint1==".")
            {
              alert(desc+"非正整数!\n请重新输入!");
           return  false;
            }
            ok1=s1.exec(snum.value);

            if  ((ok1==null))              
         {   return true;        }
            else{
             alert(desc+"非正整数!\n请重新输入!");
              return false;
       }
        }
    }

    //判断是否为正整数和0
    function IsInteger(snum,desc){
        if  (snum.value == "")
        {
            return false;
        }

        else{
            s  = /[0-9]+/;
     s1=/[^0-9]+/;
     s2=/[.]+/;
     
            ok = s.exec(snum.value);
            ok1 = s1.exec(snum.value);
            ok2 = s2.exec(snum.value);

           
            ifpoint1=snum.value.substring(0,1);
            ifpoint2=snum.value.substring(1,2);
            if  (ifpoint1=="0"&&ifpoint2=="0")
            {
             alert(desc+"输入数据错误");
       snum.focus();          
             return false;
            }
            if  (ifpoint1=="-")
            {
             alert(desc+"输入数据错误");
       snum.focus();          
             return false;
            }
            if  (ifpoint1=="0"&&snum.value.length > 1)
            {
             alert(desc+"输入数据错误");
       snum.focus();          
             return false;
            }
            if(ok2!=null){
             alert(desc+"输入数据非整数!!");
       snum.focus();          
             return false;
             
             
            }        
            if(ok!=null&&ok1==null){
                var inum = parseInt(snum.value);
                if(inum>2500000000){
                 alert(desc+"数据太大,超出范围!\n请重新输入!");
                 snum.focus();
                }
                else
               return true;
         }
         else{
             alert(desc+"非法数字!\n请重新输入!");
             snum.focus();
             return false;
         }
        }
    }

    //校验数量是否为正整数
    function IsNumberNotNav(snum,desc){   
         if  (snum.value == "")
         {
            return false;
         }
         else
         {
            s1=/[^0-9]+/;
            s2=/[a-z]+/;
            s3=/[\-][0-9]+/;
            s4=/[.]+/;
            ifpoint1=snum.value.substring(snum.value.length-1,snum.value.length);
            ifpoint2=snum.value.substring(0,1);
            ifpoint3=snum.value.substring(1,2);
           
            if  (ifpoint1=="."||ifpoint2==".")
            {
             alert(desc+"错误:数字头不能是'.'");
       snum.focus();          
             return(false);
            }

            ok1=s1.exec(snum.value);
            ok2=s2.exec(snum.value);
            ok3=s3.exec(snum.value);
            ok4=s4.exec(snum.value);
            if  ((ok1==null))                  //   (ok2!=null))||(ok3!=null))
          {  
             return true;
          }
            else
            {
              if (ok4==null&&ok2==null&&ok3!=null&&ifpoint2=="-"&&ifpoint3!="-")
            {
               alert(desc+"不能为负数!");
                snum.focus();
                return false;
            }
            else
            {
              if(ok2!=null)
              { 
               alert(desc+"非法数字!\n请重新输入!");
                snum.focus();
              }
              if (ok4!=null)
              {
               alert(desc+"应该为整数!\n请重新输入!");
                snum.focus();
              }
               return false;
              }
           }
         }
       }   

    //判断输入的是否为数字(onkeyPress="return IsJustNum(this)")
    function IsJustNum(con) {
      if (event.keyCode>57||event.keyCode<48) {
       return false;
      }
      s=/[^0-9]+/;
      ok = s.exec(con.value);
      if (ok==null) {
       return true;
      } else {
       alert("输入非法字符!\n请重新输入!");
       con.value = "";
       con.focus();
       return false;
      }
     }
     
     /**
      *当失去焦点并改变内容时判断输入(onchange="IsJustNumOnCh(this)")
      */
     function IsJustNumOnCh(con) {
      s=/[^0-9]+/;
      ok = s.exec(con.value);
      if (ok==null) {
       return true;
      } else {
       alert("输入非法字符!\n请重新输入!");
       con.value = "";
       con.focus();
       return false;
      }
    }
     
    *当失去焦点并改变内容时判断输入是否满足时间格式(onchange="IsValidTimeOnCh(this,flag)")
      * by
      * flag=1--hour;flag=2--minute
      */
    function IsValidTimeOnCh(con,flag){
      s=/[^0-9]+/;
      ok = s.exec(con.value);
      if (ok==null)
      {
       if(flag==1)
       {
        if(con.value>=24 || con.value<0)
        {
         alert("请保证输入的小时数小于24");
         con.focus();
         return false;
        }
       }
       else if(flag==2)
       {
        if(con.value>=60 || con.value<0)
        {
         alert("请保证输入的分钟数小于60");
         return false;
        }
       }

       return true;
      }
      else
      {
       alert("输入非法字符!\n请重新输入!");
       con.value = "";
       con.focus();
       return false;
      }

     
    //判断输入的是否为数字(onkeyPress="return IsJustNum(this)")
    function IsValidTime(con,flag) {
      if (event.keyCode>57||event.keyCode<48)
      {
       return false;
      }
      s=/[^0-9]+/;
      ok = s.exec(con.value);
      if (ok==null)
      { 
       return true;
      }
      else
      {
       alert("输入非法字符!\n请重新输入!");
       con.value = "";
       con.focus();
       return false;
      }
    }
     

    //去除字符串前后空格
    function deleteSpace(orgString) {
      var org = orgString.toString();
      var len = org.length;
      var offset = 0;
      while (offset<len&&org.charAt(offset)==" ") {
       offset++;
      }
      while (offset<len&&org.charAt(len-1)==" ") {
       len--;
      }
      return (offset>0||len<org.length)? org.substring(offset,len):org;
    }
     

    //判断是否为空 
    function IsNull(con) {
      var org = deleteSpace(con.value);
      if (org == ""){
             alert("输入不能为空!");
             con.focus();
          return false;
      } else {
       return true;
      }
    }
     
     
      * 判断输入是否为(HH:MM)时间格式
      * @param org 原对象
        * @param flag 是否输出错误信息(alert),并定位焦点
      */
     function IsCorrectTime(org, flag) {
      if (deleteSpace(org.value).length!=5) {
       if (flag) {
        alert("正确的时间格式为(HH:MM),长度为5位");
        org.focus();
       }
       return false;
      }
      s = /[0-9][0-9][:][0-9][0-9]/;
      ok = s.exec(org.value);
      if (ok==null) {
       if (flag) {
        alert("输入非法字符!\n正确的时间格式为(HH:MM),长度为5位!");
        org.focus();
       }
       return false;
      }
      var HH = org.value.substring(0,2);
      var MM = org.value.substring(3,5);
      if (HH<0||HH>23) {
       if (flag) {
                         alert("输入的小时不正确,请重新输入!");
                         org.focus();
                        }
                     return false;
      }
      if (MM<0||MM>59) {
       if (flag) {
                         alert("输入的分钟不正确,请重新输入!");
                         org.focus();
                        }
                     return false;
      }
      return true;
     }
     
     /**
      * 判断输入是否为(YYYYMM)日期格式
      * @param org 原对象
        * @param flag 是否输出错误信息(alert),并定位焦点
      */
     function IsCorrectDateMonth(org, flag) {
      if (deleteSpace(org.value).length!=6) {
       if (flag) {
        alert("正确的日期格式为(YYYYMM),长度为6位!");
        org.focus();
       }
       return false;
      }
      s = /[^0-9]+/;
      ok = s.exec(org.value);
      if (ok!=null) {
       if (flag) {
        alert("输入非法字符!\n正确的日期格式为(YYYYMM),长度为6位!");
        org.focus();
       }
       return false;
      }
      var yyyy = org.value.substring(0,4);
                    var mm   = org.value.substring(4,6);
      if  (yyyy<1900||yyyy>2130){
                        if (flag) {
                         alert("输入的年份不正确,请重新输入!");
                         org.focus();
                        }
                     return false;
                    }
                    else if(mm<1||mm>12){
                     if (flag) {
                      alert("输入的月份不正确,请重新输入!");
                      org.focus();
              }
                     return false;
                    }
                    return true;
     }


    /*显示隐藏文本字段*/
    function codeFold(tbl, divid)
    {
     butt = tbl.rows[0].cells[1];
     with (document.getElementById(divid).style){
      if(visibility == "visible"||visibility =='')
       {
        visibility ="hidden";
        butt.innerText = "▼";
       }
       else  {
        visibility = "visible";
        butt.innerText = "▲";    
       }
     }
    }

    /*选择或取消所有的Checkbox*/
    function doSelectAll(obj)
    {
     var name=obj.name;
     for (i=0;i<document.forms[0].elements[name].length;i++){
      document.forms[0].elements[name][i].checked = obj.checked;
     }
     
    }

    //邮件判断
    function e_mail(){
    var e=document.form;
    var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
    if(!reg.exec(e.email.value)){
     alert("email输入不正确,请检查输入!");
     e.date_t.focus();
     return false;
     }
    }

  • 相关阅读:
    flex + bison multiple parsers
    Educational Codeforces Round 95 (Rated for Div. 2)
    python学习笔记 day20 序列化模块(二)
    python学习笔记 day20 常用模块(六)
    python 学习笔记 常用模块(五)
    python学习笔记 day19 常用模块(四)
    python学习笔记 day19 常用模块(三)
    python学习笔记 day19 常用模块(二)
    python学习笔记 day19 作业讲解-使用正则表达式实现计算器
    python学习笔记 day19 常用模块
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2348596.html
Copyright © 2011-2022 走看看