posts - 36,comments - 31,trackbacks - 0

//校验是否为空
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;
 }
}

posted on 2007-04-19 13:44 心随我动 阅读(2496) 评论(2)  编辑  收藏 所属分类: JS

FeedBack:
# re: JavaScript校验学习总结
2007-04-20 12:43 | 我为J狂
正则表达式的应用。  回复  更多评论
  
# re: JavaScript校验学习总结
2008-10-23 20:10 | jiask
谢谢
很有帮助  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
网站流量统计:
澳大利亚 ABC 在线英语广播电台