隨筆-0  評論-3  文章-28  trackbacks-0
          正則表達式驗證是否是地址
          <script language=javascript>
          function check()
          {

          //alert("IP地址輸入非法!");
          var pattern=/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
          flag_ip=pattern.test(document.all.ip.value);
          if(!flag_ip)
          {
          alert("IP地址輸入非法!");
          document.all.ip.focus();
          return false;
          }
          }
          </script>
          驗證是否是地址結束

          ============================================================================
          表單定義:
          <form name="form1" action="" style="behavior:url('form.htc')"></form>
          客戶端表單驗證是由表單的onSubmit事件觸發,由于表單的onSubmit事件只能由提交按鈕觸發,
          所以如果要用函數提交表單form1.submit(),則必須同時執行form1.onSubmit()。

          類型定義:

          一、整型(int)
          定義:
            valueType="int"
          屬性:
            objName   對象名稱(字符串)
            mustInput 必輸項(true/false)
            minInput  最小值(數字)
            maxInput  最大值(數字)
          舉例:
            <input type="text" name="test" valueType="int" objName="總載重噸" mustInput="true" maxInput="10000">

          二、浮點型(float)
          定義:
            valueType="float"
          屬性:
            objName   對象名稱(字符串)
            mustInput 必輸項(true/false)
            minInput  最小值(數字)
            maxInput  最大值(數字)
            decimalLen小數位數(數字)
          舉例:
            <input type="text" name="test" valueType="float" objName="運價" mustInput="true" maxInput="10000.50" decimalLen="2">

          三、字符串(string)
          定義:
            valueType="string"
          屬性:
            objName   對象名稱(字符串)
            mustInput 必輸項(true/false)
            stringLen 字符串長度(數字)
          舉例:
            <input type="text" name="test" valueType="string" objName="英文船名" mustInput="true" stringLen="100">

          四、日期(date)
          定義:
            valueType="date"
          屬性:
            objName   對象名稱(字符串)
            mustInput 必輸項(true/false)
          舉例:
            <input type="text" name="test" valueType="date" objName="開始日期" mustInput="true">
          備注:
            日期現在只能校驗的格式為(yyyy-mm-dd)

          五、郵箱(email)
          定義:
            valueType="email"
          屬性:
            objName   對象名稱(字符串)
            mustInput 必輸項(true/false)
          舉例:
            <input type="text" name="test" valueType="email" objName="郵箱" mustInput="true">

          六、單選(radio)
          定義:
            valueType="radio"
          屬性:
            objName   對象名稱(字符串)
            mustSelect 必輸項(true/false)
          舉例:
            <input type="radio" name="test" valueType="radio" objName="租船方式" mustSelect="true">
          備注:
            對于同一組單選按鈕,只需要定義第一個即可。

          七、復選(checkbox)
          定義:
            valueType="checkbox"
          屬性:
            objName   對象名稱(字符串)
            minSelect 最小選擇數(數字)
            maxSelect 最大選擇數(數字)
          舉例:
            <input type="checkbox" name="test" valueType="checkbox" objName="愛好" minSelect="2" maxSelect="5">
          備注:
            對于同一組復選按鈕,只需要定義第一個即可。

          八、下拉列表框(select)
          定義:
            valueType="select"
          屬性:
            objName   對象名稱(字符串)
            mustSelect 必輸項(true/false)
          舉例:
            <select name="test" valueType="select" objName="租船方式" mustSelect="true">

          九、列表框(list)
          定義:
            valueType="list"
          屬性:
            objName   對象名稱(字符串)
            minSelect 最小選擇數(數字)
            maxSelect 最大選擇數(數字)
          舉例:
            <select name="test" valueType="list" objName="愛好" minSelect="2" maxSelect="5">


          /////////////////////////////////////////////////////////////////////////////////////////////////////////

          <!-- ---------------------------------------------------------------------
          //
          //  File:  form.htc
          //  version:    1.0
          //  Description:客戶端表單驗證.
          //  author:     伍子
          //
          //-------------------------------------------------------------------- -->
          <PUBLIC:COMPONENT id="formCheck" urn="wwb:formCheck">
          <PUBLIC:ATTACH EVENT="onsubmit" ONEVENT="checkForm()"/>
          <script language="JavaScript">
          function checkForm()
          {
              var oForm=event.srcElement;
          var eles = oForm.elements;
              //遍歷所有表元素
          for(var i=0;i<eles.length;i++)
              {
                  //是否需要驗證
                  var sType=eles[i].valueType;
            if(sType)
                  {
             if(eles[i].mustInput!=null && eles[i].mustInput)
             {
              if(trim(eles[i].value)=="")
              {
               if(eles[i].objName!=null)
               {
                alert(eles[i].objName+"不可以為空");
               }
               else
               {
                alert("該文本框為必輸字段");
               }
               eles[i].focus();    
               event.returnValue=false;    
               return false;  
              }
             }  
             switch(sType)
             {
                          //整數
              case "int":
               if(!checkInt(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //小數
              case "float":
               if(!checkFloat(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //字符串
              case "string":
               if(!checkString(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //日期
              case "date":
               if(!checkDate(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //郵件
              case "email":
               if(!checkEmail(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //單選按鈕
              case "radio":
               if(!checkRadio(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //復選按鈕
              case "checkbox":
               if(!checkBox(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //下拉列表框
              case "select":
               if(!checkSelect(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
              //列表框
              case "list":
               if(!checkList(eles[i]))
               {
                event.returnValue=false;
                return false;
               }
               break;
                      }
                  }
              }
          event.returnValue=true;
          return true;
          }

          /***檢查是否為整數***/
          function checkInt(ele)
          {
          if(!isInt(ele.value))
          {
            alert("請輸入有效整數");
            ele.focus();
            return false;
          }
          else
          {
            if(ele.maxInput!=null && !isNaN(ele.maxInput))
             if(parseInt(ele.maxInput)<parseInt(ele.value))
             {
              alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);        
              ele.focus();
              return false;
             }      
            if(ele.minInput!=null && !isNaN(ele.minInput))
             if(parseInt(ele.minInput)>parseInt(ele.value))
             {
              alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
              ele.focus();
              return false;
             }  
          }
          return true;
          }

          /***檢查是否為小數***/
          function checkFloat(ele)
          {
              if(isNaN(ele.value))
              {
            alert("請輸入有效數字");
            ele.focus();
            return false;
              }
          else
          {
                  if(ele.decimalLen!=null && !checkDecimal(ele.value,ele.decimalLen))
               {
             alert("您輸入的"+convertNullToSpace(ele.objName)+"值小數位最多為"+ele.decimalLen);
             ele.focus();    
             return false;
                  }
            if(ele.maxInput!=null && !isNaN(ele.maxInput))
             if(parseInt(ele.maxInput)<parseInt(ele.value))
             {
              alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該小于"+ele.maxInput);          
              ele.focus();
              return false;
             }      
            if(ele.minInput!=null && !isNaN(ele.minInput))
             if(parseInt(ele.minInput)>parseInt(ele.value))
             {
              alert("您輸入的"+ convertNullToSpace(ele.objName)+"值應該大于"+ele.minInput);
              ele.focus();
              return false;
             }  
          }
          return true;
          }

          /***檢查是否為字符串***/
          function checkString(ele)
          {
          if(ele.stringLen!=null && !isNaN(ele.stringLen))
          {
            var value=new String(ele.value);
            if(value.length>parseInt(ele.stringLen))
            {
             alert("您輸入的"+convertNullToSpace(ele.objName)+"最大長度為"+ele.stringLen);
             ele.focus();    
             return false;
            }
          }
          return true;
          }
          /***檢查是否為日期格式***/
          function checkDate(ele)
          {
          if(!isDate(ele.value))
          {
            alert("請輸入有效日期(yyyy-mm-dd)");
            ele.focus();
            return false;
              }
          return true;
          }

          /***檢查是否為電子郵箱***/
          function checkEmail(ele)
          {
          if(!isEmail(ele.value))
          {
            alert("請輸入有效郵箱");
            ele.focus();
            return false;
              }
          return true;
          }
          /***檢查單選按鈕是否需要選擇***/
          function checkRadio(ele)
          {
          //var rads = document.getElementsByName(ele.name);
              eval("var rads="+name+"."+ele.name);
          var selectCount=0;
          for(var i=0;i<rads.length;i++)
              {
            if(rads[i].checked)
                  {
             selectCount++;
                  }
              }

          if(ele.mustSelect!=null && ele.mustSelect)
          {
            if(selectCount==0)
            {
             alert("請選擇"+convertNullToSpace(ele.objName));
             ele.focus();    
             return false;
            }
          }
          return true;
          }
          /***檢查復選按鈕是否需要選擇***/
          function checkBox(ele)
          {
          //var rads = document.getElementsByName(ele.name);
              eval("var chks="+name+"."+ele.name);
          var selectCount=0;
          for(var i=0;i<chks.length;i++)
              {
            if(chks[i].checked)
                  {
             selectCount++;
                  }
              }
          if(ele.minSelect!=null && !isNaN(ele.minSelect))
          {
            if(selectCount<parseInt(ele.minSelect))
            {
             alert(convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
             ele.focus();    
             return false;
            }
          }
          if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
          {
            if(selectCount>parseInt(ele.maxSelect))
            {
             alert(convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
             ele.focus();    
             return false;
            }
          }
          return true;
          }
          /***檢查下拉列表框是否需要選擇***/
          function checkSelect(ele)
          {
          //var rads = document.getElementsByName(ele.name);
          if(ele.mustSelect!=null && ele.mustSelect)
          {
            if(ele.selectedIndex==0)
            {
             alert("請選擇"+convertNullToSpace(ele.objName));
             ele.focus();    
             return false;
            }
          }
          return true;
          }
          /***檢查列表框的選擇項數***/
          function checkList(ele)
          {
          //var rads = document.getElementsByName(ele.name);
              var selectCount=0;
          for(var i=0;i<ele.options.length;i++)
              {
                  if(ele.options[i].selected)
                  {
                      selectCount++;
                  }
              }
          alert(selectCount);
          if(ele.minSelect!=null && !isNaN(ele.minSelect))
          {
            if(selectCount<parseInt(ele.minSelect))
            {
             alert(convertNullToSpace(ele.objName)+"至少選擇"+ele.minSelect+"項");
             ele.focus();    
             return false;
            }
          }
          if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
          {
            if(selectCount>parseInt(ele.maxSelect))
            {
             alert(convertNullToSpace(ele.objName)+"至多選擇"+ele.maxSelect+"項");
             ele.focus();    
             return false;
            }
          }
          return true;
          }
          /***判斷是否為整數***/
          function isInt(s)
          {
          var patrn=/^[-,+]{0,1}[0-9]{0,}$/;
          if (!patrn.exec(s))
             return false;
          return true;
          }
          /***判斷是否為數字***/
          function isNumber(s)
          {
          var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
          if (!patrn.exec(s))
             return false;
          return true;
          }
          /***判斷是否為日期***/
          function isDate(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]);
          if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
          {  
            return false;
          }
          return true;
          }
          /***判斷是否為郵箱***/
          function isEmail(str)
          {
          if(str.match(/[\w-]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig)!=str)
            return false;
          else
            return true;
          }
          /***將NULL轉化為空格,用于顯示對象名稱***/
          function convertNullToSpace(paramValue)
          {
            if(paramValue==null)
              return "";
            else
              return paramValue;
          }
          /***檢查小數位數***/
          function checkDecimal(num,decimalLen)
          {
            var len = decimalLen*1+1;
            if(num.indexOf('.')>0)
            {
              num=num.substr(num.indexOf('.')+1,num.length-1);  
              if ((num.length)<len)
          {
                return true;
              }
          else
          {
                return false;
              }
            }
            return true;
          }
          /***去除空格***/
          function trim(str)
          {
          if (str.length > 0)
          {
            while ((str.substring(0,1) == " ") && (str.length > 0))
            {
             str = str.substring(1,str.length);
            }
            while (str.substring(str.length-1,str.length) == " ")
            {
             str = str.substring(0,str.length-1);
            }
          }
          return str;
          }
          </script>
          </PUBLIC:COMPONENT>
          posted on 2007-12-11 11:31 閱讀(186) 評論(0)  編輯  收藏 所屬分類: java基礎
          主站蜘蛛池模板: 阜新| 北宁市| 林西县| 江油市| 芦山县| 昌邑市| 山东省| 宝坻区| 陆川县| 海阳市| 尼勒克县| 瑞昌市| 黄平县| 台湾省| 滁州市| 普格县| 卢氏县| 大悟县| 龙海市| 德兴市| 顺义区| 阿拉尔市| 三原县| 保康县| 牡丹江市| 保德县| 黄大仙区| 同仁县| 湘阴县| 马公市| 江陵县| 福贡县| 博白县| 巩留县| 偏关县| 渑池县| 潢川县| 双流县| 鄂温| 淳化县| 安泽县|