`
ljl_xyf
  • 浏览: 634518 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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>



效果如下:

刚打开页面效果

姓名:
年龄:
网址:

单击检测后页面效果

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

输入数据检测结果

姓名:
年龄:
网址:
  • 姓名不能为空
分享到:
评论

相关推荐

    这里存放我做过的目标检测(特定目标检测和通用目标检测)的项目。包括代码,数据集,资料,原论文。.zip

    目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样...

    JavaScript详解.doc

    另一种是将JavaScript代码编写在独立的`.js`文件中,然后通过`&lt;script&gt;`标签的`src`属性引用。这种方式有利于代码的组织和重用。需要注意的是,如果`&lt;script&gt;`标签设置了`src`属性,那么标签内部的代码将不会被执行...

    久其报表4.0.522专业免费版

    通用统计报表处理分析系统是一个能完成数据收集方案设计、工作布置、数据上报、数据分析汇总等一系列工作的操作平台。通过多任务管理机制,实现用一套软件完成各类数据收集、管理工作。可以同时完成年报、季报、月报...

    CFD通用软件综述,大体情况介绍

    CFD通用软件综述,CFD通用软件综述,CFD通用软件综述,大体情况介绍,大体情况介绍

    javascript 各种效果参考书

    - 这本书可能包含了大量的JavaScript代码示例,涵盖了从基础到高级的各种功能和技巧,适合开发者参考和学习。 9. **Jave Script 语法电子手册**: - 提供了JavaScript的详细语法说明,是学习和查阅语言规范的好...

    [JavaScript与JScript从入门到精通]

    虽然JScript和JavaScript在语法上大体相似,但存在一些细微的差异,例如JScript支持某些IE特有的功能。随着现代浏览器对ECMAScript标准的广泛支持,JScript在实际开发中的使用已经相对较少。 JavaScript的基础包括...

    小目标检测数据扩充方法.zip

    目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样...

    Android 2.2/2.3 通用Camera拍照源代码

    通过研究源代码,开发者可以更好地理解如何在Android 2.2和2.3版本上实现通用的Camera拍照功能,并且这个示例也适用于更高版本的Android系统,因为基本的Camera API在后续版本中仍然保留。 在实际开发中,我们还...

    js压缩工具(内有4种工具)

    然而,在实际的网站部署中,为了提高页面加载速度、减少数据传输量以及提高安全性,通常会使用JS压缩工具对JavaScript文件进行压缩。标题提到的“js压缩工具(内有4种工具)”压缩包,包含了一系列用于处理JS文件的...

    数据产品设计的3个方法论(附淘宝系解析).pdf

    数据挖掘的方法论有多种,包括DMAIC模型、CRISP-DM模型和SEMMA模型等,它们流程大体相似,但各有侧重点。 DMAIC模型是一个简洁且循环控制的方法论,它包括定义需求、测量数据、分析建模、解决问题和反馈控制五个...

    目标检测和语义分割数据集分析处理相关代码.zip

    目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样...

    扩充目标检测数据集的方法.zip

    目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样...

    IOCP完成端口模型源代码

    IOCP完成端口模型源代码 使用IOCP的TCP服务器使用过程大体如下: 1) 使用CreateIoCompletionPort函数创建完成端口,并以该I/O完成端口为参数创建多个服务线程; 2) 创建监听套接字; 3) 接收客户端连接请求,...

    Node.js-jq.node-强大的命令行JSON处理器

    Node.js是一个开源、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码。Node.js基于Chrome V8引擎,因此它具有高性能和高效率的特点,广泛应用于构建网络应用、实时通信应用以及处理大量I/O...

    一种基于自适应监测的云计算系统故障检测方法.pdf

    基于自适应监测的云计算系统故障检测方法主要解决当前云计算系统在性能和可靠性保障中面临的问题,即如何在减少监测数据搜集、传输、存储和分析的性能开销的同时,提高故障检测的准确性和及时性。云计算系统由于其...

    VC++通用GIS功能开发解决方案

    VC++通用GIS功能开发解决方案》源代码是基于VC++6.0 MFC 类库,在Win2000平台上开发的。界面部分用到了较低版本的 CJ60Lib 开放源码库,用户可自行替换高版本或其他界面库,它不作为本方案的商业部分。 《VC++...

    js+Jcrop.js+php实现头像上传

    这个demo可以看做是一个头像上传的例子,实现了头像上传的大体流程,当然直接拿去就用可能不太现实,这只是一个demo,代码中的上传功能是用PHP实现的,所以这个例子需要在PHP环境下运行,刚刚学习,轻喷

    4.Apifox接口文档定义大体流程文档(全).doc

    3. 自动生成代码:Apifox 会根据选择的数据结构和模板生成对应的代码。 八、字段说明预览 Apifox 提供了字段说明预览的功能,旨在让开发者可以预览数据结构的字段信息。该功能包括以下几个方面: 1. 字段信息:...

Global site tag (gtag.js) - Google Analytics