<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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 舵手 閱讀(2569) 評論(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

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


    網站導航:
     
    主站蜘蛛池模板: 国产亚洲精品美女久久久久久下载| 亚洲电影一区二区三区| 在人线av无码免费高潮喷水| 无码区日韩特区永久免费系列| 牛牛在线精品观看免费正| 国产综合免费精品久久久| 亚洲一区免费观看| 性色av无码免费一区二区三区| 免费欧洲毛片A级视频无风险| 亚洲中久无码不卡永久在线观看| 亚洲av无码精品网站| 亚洲Av无码国产一区二区| 最近免费mv在线观看动漫| 欧洲精品免费一区二区三区| 亚洲热妇无码AV在线播放| 精品丝袜国产自在线拍亚洲| 成人无码视频97免费| 成年人网站在线免费观看| 亚洲国产精品va在线播放 | 亚洲精品免费在线| 亚洲AV成人潮喷综合网| 亚洲最新中文字幕| 人人鲁免费播放视频人人香蕉| 99国产精品免费视频观看| 亚洲AV无码成H人在线观看| 亚洲一区二区三区高清不卡| 韩国日本好看电影免费看| 日韩久久无码免费毛片软件| 亚洲熟妇无码八AV在线播放| 18女人腿打开无遮掩免费| 亚洲一久久久久久久久| 1区2区3区产品乱码免费| 91在线亚洲综合在线| 亚洲精品免费观看| 亚洲日产乱码一二三区别 | 日本免费网址大全在线观看| 亚洲av中文无码乱人伦在线观看| 人妻视频一区二区三区免费| 国产AV无码专区亚洲AV琪琪| 亚洲VA中文字幕无码毛片 | 国产99久久久国产精免费|