GalaxyPilot —— D.S


                  生命不熄,戰斗不止
          數據加載中……

          以前寫的一個javascript數據校驗函數

          ////////////////////////////////////////////////////////////////////////////
          //
          //?通用數據校驗函數,調用該函數需要傳兩個對像參數
          //?表單需要定義三個擴展屬性:nullable,datatype,cname?
          // nullable屬性用來說明該表單是否可以為空
          //????????????y——可以為空,n——不能為空
          //?datatype屬性用來說明該表單的數據類型,
          //????????????n——整型,m——浮點(例ma.b),
          //???????????? f——固定長度整數,d——日期型
          //cname屬性用來定義在數據校驗失敗時提示信息中出現的字出錯字段名稱
          //maxlength的取值應該和數據庫對應字段長度一直或小于
          //?
          //??????? ?最后修改日期:2003-12-02????????? ????????????? By?舵手
          //?
          ///////////////////////////////////////////////////////////////////////////

          var msg="";
          /* 取得字符串的字節長度 */
          function strlen(str)
          ?{
          ??var i;
          ??????? var len;
          ??????? len = 0;
          ??????? for (i=0;i<str.length;i++)
          ???{
          ???if (str.charCodeAt(i)>255) len+=2; else len++;
          ??}
          ??????? return len;
          }
          /* 檢測字符串是否為空*/
          function isnull(str)
          ?{
          ??var i;
          ??????? for (i=0;i<str.length;i++)
          ???{
          ???if (str.charAt(i)!=' ') return false;
          ??????? }
          ??????? return true;
          }

          /* 檢測字符串是否全為數字 */
          function isnumber(str)
          ?{
          ??var number_chars = "1234567890";
          ??????? var i;
          ??????? for (i=0;i<str.length;i++)
          ???{
          ??????????? if (number_chars.indexOf(str.charAt(i))==-1) return false;
          ??????? }
          ??????? return true;
          }
          /* 檢測字符串是否是指點的數點數 */
          function isfloat(str,typ){
          ??var number_chars = "1234567890.";
          ??????? var i;
          ??????? for (i=0;i<str.length;i++){
          ??????????? if (number_chars.indexOf(str.charAt(i))==-1){
          ?????? msg="這里應該是數字;";
          ????return false;
          ???}
          ??????? }
          ??if (str.length==0)
          ??{
          ???msg="數字位不能為空";
          ???return false;
          ??}
          ??var len=typ.length;
          ??var po=typ.indexOf(".");
          ??if (po==-1){
          ???intlen=typ.substring(1,len);
          ???floatlen="0";
          ??}
          ??else{
          ????? var intlen=typ.substring(1,po);
          ????? var floatlen=typ.substring(po+1,len);
          ??}
          ??
          ??var len=str.length;
          ??var po=str.indexOf(".");
          ??if (po==-1){
          ???ints=str.substring(0,len);
          ???floats="0";
          ??}
          ??else{
          ????? var ints=str.substring(0,po);
          ????? var floats=str.substring(po+1,len);
          ??}
          ??????? if (intlen<ints.length){
          ???msg="整數位超過長度;";
          ???return false;
          ??}
          ??if (floatlen<floats.length){
          ???msg="小數位超過長度;";
          ???return false;
          ??}
          ??return true;
          }
          /* 檢測字符串是否是有效日期 */
          String.prototype.isDate=function(){
          ?var re=/^(\d{1,4})(-|\/|\.)(\d{1,2})\2(\d{1,2})$/;
          ?var r=this.match(re);
          ?if(r==null) return false;
          ?var d=new Date(r[1],r[3]-1,r[4]);
          ?return (d.getFullYear()==r[1]&&d.getMonth()==r[3]-1&&d.getDate()==r[4]);
          }
          /*檢測數據類型*/
          String.prototype.isType=function(){
          ?var re=/^\m((\d+)*)((\.\d+)*)$/;
          ?var r=this.match(re);
          ?if (r != null)
          ??return true;
          }

          /* 檢測字符串是否滿足要求 */
          function verify(obj,flag)
          {
          ?var nam,val,len,max,nulll,typee,bool,str,boo,typ;
          ?str="";
          ??? bool=true;
          ?boo=true
          ??? for (i=0;i<obj.elements.length;i++)
          ?{
          ??if (!bool)
          ??????????? break;
          ???? max=obj.elements[i].maxLength;
          ??val=(obj.elements[i].value);
          ??nam=(obj.elements[i].name);?
          ??typee=obj.elements[i].datatype;
          ??if (nam=="editmode" && flag)
          ??{
          ???break;
          ??}
          ??if (nam !="editmode" && !flag && boo)
          ???continue;
          ??else
          ???boo=false;
          ??????? len=strlen(val);
          ??if (typee!=null && typee!="undefined")
          ??{
          ???if (typee.isType()){
          ?????? typ=typee;
          ????typee="m";
          ????max=max+1;
          ???}????
          ??}
          ???????
          ??if (len>max)
          ??{
          ???????? str="【"+obj.elements[i].cname+"】"+"超過限制長度;";
          ??????????? obj.elements[i].focus();
          ???obj.elements[i].select();
          ???bool=false;
          ???alert(str);
          ???break;
          ??}
          ??nulll=obj.elements[i].nullable;
          ??if (nulll=="n")
          ???? {
          ???if (isnull(val))
          ???{
          ????????? str="【"+obj.elements[i].cname+"】"+"不能為空;";
          ????obj.elements[i].focus();
          ?????? obj.elements[i].select();
          ????bool=false;
          ????alert(str);
          ??????????????? break;
          ???}
          ??}
          ??
          ??switch(typee)
          ??{
          ???case "n" : if (isnumber(val)==false)
          ???{
          ???? str="【"+obj.elements[i].cname+"】"+"應該是數字;";
          ???? obj.elements[i].focus();
          ??????? obj.elements[i].select();
          ???? bool=false;
          ???? alert(str);?
          ???}
          ???break;
          ??????????? case "m" : if (isfloat(val,typ)==false)
          ????? {
          ???? str="【"+obj.elements[i].cname+"】"+"數字的格式不正確"+"——"+msg;
          ???? obj.elements[i].focus();
          ??????? obj.elements[i].select();
          ???? bool=false;
          ???? alert(str);
          ???}
          ???break;
          ???case "f" : if (isnumber(val)==false || (max!=len && len!=""))
          ????? {
          ???? str="【"+obj.elements[i].cname+"】"+"不是數字或長度無效;";
          ???? obj.elements[i].focus();
          ??????? obj.elements[i].select();
          ???? bool=false;
          ???? alert(str);
          ???}
          ???break;

          ???case "d" : if (! val.isDate() && val!="")
          ????? {
          ???? str="【"+obj.elements[i].cname+"】"+"日期格式無效;";
          ???? obj.elements[i].focus();
          ??????? obj.elements[i].select();
          ???? bool=false;
          ???? alert(str);
          ???}
          ???break;
          ???//在這里可以加入其它數據類型校驗
          ???default?: break;
          ??}
          ?}
          ?return bool;??
          }
          /*回車轉換焦點*/
          function keyenter(obj,obje)
          {
          ?var keycd,i,nam,ii,bool;
          ?keycd=event.keyCode;
          ?ii=obj.elements.length;
          ?nam=obje.name;
          ?bool=true;
          ?if (keycd==13)
          ?{
          ????? for (i=0;i<obj.elements.length;i++)
          ???????????? {
          ???? if (bool)
          ???? if (nam==(obj.elements[i].name))
          ???????? {
          ???????? bool=false;
          ???????? if (i+1<ii)
          ??????{
          ?????????????????? obj.elements[i + 1].focus();
          ??????}
          ??????? }
          ???????? }
          ????? }
          }

          posted on 2006-05-09 09:04 舵手 閱讀(2561) 評論(4)  編輯  收藏

          評論

          # re: 以前寫的一個javascript數據校驗函數  回復  更多評論   

          寫得好爛~
          2006-05-10 09:28 | xxx

          # re: 以前寫的一個javascript數據校驗函數  回復  更多評論   

          是的,寫的確實很爛。當時剛接觸B/S的開發。后來用不到這個,也就沒完善過!
          2006-05-10 13:51 | 舵手 QQ:8117892

          # re: 以前寫的一個javascript數據校驗函數[未登錄]  回復  更多評論   

          強哥,好~
          2007-04-06 14:36 | Bright

          # re: 以前寫的一個javascript數據校驗函數  回復  更多評論   

          @Bright

          不知道你是那位?
          2007-04-07 08:29 | 舵手 QQ:8117892

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 营山县| 镇安县| 金阳县| 上杭县| 清水河县| 绥江县| 桦甸市| 大埔县| 蒲城县| 台东县| 阳城县| 泽州县| 西峡县| 巫溪县| 南部县| 建瓯市| 张家口市| 安图县| 紫云| 大悟县| 五河县| 贡觉县| 泸州市| 武强县| 扶沟县| 贺兰县| 桃源县| 乌苏市| 呼玛县| 遂宁市| 尼勒克县| 滨海县| 宁都县| 合川市| 沙坪坝区| 安顺市| 竹山县| 金阳县| 洱源县| 应城市| 镇江市|