• 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;
     }
    }

  • 相关阅读:
    HDU 5265 pog loves szh II (二分查找)
    不删除记录的表CRUD的常见处置
    如果真的不知道将来要做什么
    爪哇国新游记之三十三----目录文件操作
    一个类似股票看板的自刷新页面的制作
    转载:什么才是程序员的核心竞争力
    又见The request sent by the client was syntactically incorrect ()
    uefi版和装机版有什么区别?
    Mealy和moore型状态机的主要区别
    FIFO、UART、ALE解释
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2348596.html
Copyright © 2020-2023  润新知