zoukankan      html  css  js  c++  java
  • js通用数据检测方法(只完成js端大体功能,随会追加php端代码)

    js通用数据检测方法,现在只完成js端大体功能,随会追加php端代码,用户只在php点指定检测类型,会自动生成客户端js检测代码,从而做到只定义一次检测代码实现客户端服务端全部检测,让程序制作更方便。下面退出js端的代码。

    submitCheckFunc.js

    //******************************************************
    //通用JS客户端数据检测 v1.0.20110705
    //作者:ljl_xyf  http://www.my400800.cn
    //******************************************************/
    function submitCheckFunc() {
        this.CheckObjArr = Array();
    }
    submitCheckFunc.prototype={
        ErrMsg:"",
        ErrObj:Array(),
        CheckObjArr:Array(),//要检测的对象存放
        SetFocusObj:null,
        //____________________对象空判断__________________
        IsNotNull:function(checkId){
            var checkobj = this.GetElementX(checkId);
            strType = checkobj.type;
            if(strType.indexOf("select")<0 ){
                var checkvalue = checkobj.value;
                if(_IsNull(checkvalue)){
                    return false;
                }
            }else{
                var blCheckOk = false;
                for(var i=checkobj.length-1;i>=0;i--){
                    var rOption =checkobj[i];
                    if(rOption.selected == true){
                        if(rOption.value!=""){
                            blCheckOk =  true;
                        }
                    }
                }
                return blCheckOk;
            }
            return true;
                  
        },
       
        //____________________是否是数字检测______________
        IsFloat:function(oNum){
            if(!oNum) return false;
            var strP=/^\d+(\.\d+)?$/;
            if(!strP.test(oNum)){
                return false;
            }
            try{
                if(parseFloat(oNum)!=oNum){
                    return false;
                }
            } catch(ex)   {
                return false;
            }
            return true;  


        },

        //____________________验证整数____________________
        IsInteger:function(checkNum){
            var regu = /^[-]{0,1}[0-9]{1,}$/;
            return regu.test(checkNum);
        },

        //____________________验证邮箱地址________________
        IsEmail:function(strEmail){
            if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
                return true;
            return false;
        },

        //____________________是否小于最大值______________
        IsLessMax:function(strValue,strMaxValue){
          
            if(this.IsFloat(strValue)){          
                if((strValue/1)>(strMaxValue/1)){
                    return false;
                }
            }
            return true;
                   
        },

        //____________________是否大于最小值______________
        IsGreaterMin:function(strValue,strMaxValue){
            if(this.IsFloat(strValue)){
                if((strValue/1)<(strMaxValue/1)){
                    return false;
                }
            }
            return true;
        },
       
        //____________________是否小于最大长度____________
        IsLessMaxLen:function(strValue,iMaxlen){
            if(!this._isNull(strValue)){
                if(strValue.length>iMaxlen){
                    return false;
                }           
            }
            return true;
        },
       
        //____________________是否大于最小长度____________
        IsGreaterMinLen:function(strValue,iMinlen){
            if(!this._isNull(strValue)){
                if(strValue.length<iMinlen){
                    return false;
                }
            }
            return true;
        },
       
        //____________________是否是日期检测______________
        IsDate:function(strValue){
            //如果为空,则通过校验
            if(this._isNull(strValue))
                return true;
            var pattern = /^((d{4})|(d{2}))-(d{1,2})-(d{1,2})$/g;
            if(!pattern.test(strValue))
                return false;
            var arrDate = strValue.split("-");
            if(parseInt(arrDate[0],10) < 100)
                arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
            var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
            if(date.getYear() == arrDate[0]
                && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
                && date.getDate() == arrDate[2])
                return true;
            else
                return false;

        },

        //____________________数据检测___________________
        Check:function(){       
            this.ErrMsg="";      
            this.ErrObj = Array();
            var checkOneObj = null;
            this.SetFocusObj = null;
            //错误信息样式清除
            this.Clear();
            //项目信息检测
            for(var i=0;i<this.CheckObjArr.length;i++){
                checkOneObj = this.CheckObjArr[i];
                var checkOnedataObj =null;
                for(var j=0;j<checkOneObj[2].length;j++){
                    checkOnedataObj = checkOneObj[2][j];
                    var checkObj = this.GetElementX(checkOneObj[0]);
                    var checkFunc;
                    if("IsNotNull"==checkOnedataObj[0]){
                        checkFunc="this."+checkOnedataObj[0]+"('"+checkOneObj[0]+"','"+checkOnedataObj[1]+"')";
                    }else{
                        checkFunc="this."+checkOnedataObj[0]+"('"+checkObj.value+"','"+checkOnedataObj[1]+"')";
                    }

                    //alert(checkFunc);
                    var checkBL = eval(checkFunc);
                    if(!checkBL){
                        this.ErrMsg+="<li>"+checkOnedataObj[2]+"</li>";
                        checkObj.style.backgroundColor="yellow";
                        checkObj.title=checkOnedataObj[2];
                        if(this.SetFocusObj==null){
                            this.SetFocusObj=checkObj;                       
                        }
                        break;
                    }        
                }           
            }

           
            if(this._isNull(this.ErrMsg)){
                return true;
            }else{
                var errMsgObj = this.GetElementX("errMsg");
                if(errMsgObj){
                    errMsgObj.innerHTML = this.ErrMsg;
                }else{
                    alert(this.ErrMsg);
                }
                this.SetFocusObj.focus();
                return false;
            }
        },
       
        //____________________样式清除处理________________
        Clear:function(){
            for(var i=0;i<this.CheckObjArr.length;i++){
                checkOneObj = this.CheckObjArr[i];
                var checkObj = this.GetElementX(checkOneObj[0]);
                checkObj.style.backgroundColor="";
                checkObj.title="";
                var errMsgObj = this.GetElementX("errMsg");
                if(errMsgObj){
                    errMsgObj.innerHTML = "";
                }
            }       
        } ,
      
        //____________________添加要进行检测数据__________
        AddCheckData:function(checkObj){
            this.CheckObjArr[this.CheckObjArr.length]=checkObj;
        },

        //******************************************通用函数************start************************
        //____________________取得指定名称对象____________
        GetElementX:function(objName){
            if(document.getElementById(objName)){
                return document.getElementById(objName);
            }else if(document.getElementById(objName.split('$').join('_'))){
                return document.getElementById(objName.split('$').join('_'));
            }else{
                return null;
            }
        },
       
        //____________________项目空检测_________________
        _isNull:function(value){
            var str = value;
            if(str.length==0){
                return true;
            }else{
                return false;
            }
        }
    //**********************************************通用函数*************end************************
    }

    测试用HTML文件

    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       
            <script src="js/submitCheckFunc.js"></script>


        </head>
        <body>
           姓名: <input id="name" value=""><br>
            年龄:<input id="age" value=""><br>
            网址:<input id="url" value="http://www.my400800.cn"><br>    
                <script>
                    function check(){                 
                        var checkFrom = new submitCheckFunc();
                        checkFrom.AddCheckData(["name","姓名",[["IsNotNull","","姓名不能为空"],["IsLessMaxLen","10","姓名最大十个字符"]]]);
                        checkFrom.AddCheckData(["age","年龄",[["IsNotNull","","年龄不能为空"],["IsInteger","","年龄输入非数值"],["IsLessMax","150","年龄最大不能超过150"]]]);
                        checkFrom.AddCheckData(["url","网址",[["IsNotNull","","网址不能为空"],["IsLessMaxLen","150","网址最大不能操作150个字符"]]]);
     
                        checkFrom.Check();
                   
                    
                    }
                  
                </script>         
                <input type="button" value="检测测试" onclick="check();">

        
           <ul id="errMsg" style="color:red">


            </ul>
        </body>
    </html>

    

    效果如下:

    刚打开页面效果

    姓名:
    年龄:
    网址:

    单击检测后页面效果

    姓名:
    年龄:
    网址:
    • 姓名不能为空
    • 年龄不能为空
    • 网址不能为空

    输入数据检测结果

    姓名:
    年龄:
    网址:
    • 姓名不能为空
  • 相关阅读:
    Atitit 集团与个人的完整入口列表 attilax的完整入口 1. 集团与个人的完整入口列表 1 2. 流量入口概念 2 3. 流量入口的历史与发展 2 1.集团与个人的完整入口列表
    atitit 每季度日程表 每季度流程 v3 qaf.docx Ver history V2 add diary cyar data 3 cate V3 fix detail 3cate ,
    Atitit react 详细使用总结 绑定列表显示 attilax总结 1. 前言 1 1.1. 资料数量在百度内的数量对比 1 1.2. 版本16 v15.6.1 1 1.3. 引入js 2
    Atitit r2017 r3 doc list on home ntpc.docx
    Atitit r2017 ra doc list on home ntpc.docx
    Atiitt attilax掌握的前后技术放在简历里面.docx
    Atitit q2016 qa doc list on home ntpc.docx
    Atitit r7 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0D3C8 D:\ati\r2017 v3 r01\
    Atitit 可移植性之道attilax著
    Atitit q2016 q5 doc list on home ntpc.docx
  • 原文地址:https://www.cnblogs.com/jishu/p/2098450.html
Copyright © 2011-2022 走看看