javascript常用的正则表达式实例


Posted in Javascript onMay 15, 2014

小编之前整理了不少JavaScript常用的正则表达式实例,都是自己用的,现在放出来给大家分享下。

/**
* 取得字符串的字节长度
*/
 
    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;   
    }   
        

/*
* 判断是否为数字,是则返回true,否则返回false
*/
 
    function f_check_number(obj)   
    {          
        if (/^\d+$/.test(obj.value))   
        {   
           return true;   
        }    
        else    
        {   
           f_alert(obj,"请输入数字");   
           return false;   
        }   
    }   
        

/*
* 判断是否为自然数,是则返回true,否则返回false
*/
 
    function f_check_naturalnumber(obj)   
    {          
        var s = obj.value;   
        if (/^[0-9]+$/.test( s ) && (s > 0))   
        {   
           return true;   
        }    
        else    
        {   
            f_alert(obj,"请输入自然数");   
            return false;   
        }   
    }   
        

/*
* 判断是否为整数,是则返回true,否则返回false
*/
 
    function f_check_integer(obj)   
    {          
        if (/^(\+|-)?\d+$/.test( obj.value ))    
        {   
           return true;   
        }    
        else    
        {   
            f_alert(obj,"请输入整数");   
            return false;   
        }   
    }   
        

/*
* 判断是否为实数,是则返回true,否则返回false
*/
 
    function f_check_float(obj)   
    {          
        if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value ))    
        {   
           return true;   
        }    
        else    
        {   
            f_alert(obj,"请输入实数");   
           return false;   
        }   
    }   
        

/*
* 校验数字的长度和精度
*/
 
    function f_check_double(obj){   
        var numReg;   
        var value = obj.value;   
        var strValueTemp, strInt, strDec;      
        var dtype = obj.eos_datatype;   
        var pos_dtype = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(",");   
        var len = pos_dtype[0], prec = pos_dtype[1];   
        try  
        {          
            numReg =/[\-]/;   
            strValueTemp = value.replace(numReg, "");   
            numReg =/[\+]/;   
            strValueTemp = strValueTemp.replace(numReg, "");   
            //整数   
            if(prec==0){   
                numReg =/[\.]/;   
                if(numReg.test(value) == true){   
                    f_alert(obj, "输入必须为整数类型");   
                    return false;      
                }              
            }          
            if(strValueTemp.indexOf(".") < 0 ){   
                if(strValueTemp.length >( len - prec)){   
                    f_alert(obj, "整数位不能超过"+ (len - prec) +"位");   
                    return false;   
                }          
            }else{   
                strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );          
                if(strInt.length >( len - prec)){   
                    f_alert(obj, "整数位不能超过"+ (len - prec) +"位");   
                    return false;   
                }   
                strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );    
                if(strDec.length > prec){   
                    f_alert(obj, "小数位不能超过"+  prec +"位");   
                    return false;   
                }          
            }          
            return true;   
        }catch(e){   
            alert("in f_check_double = " + e);   
            return false;   
        }      
    }   
        

/*
* 校验数字的最小最大值
* 返回bool
*/
 
    function f_check_interval(obj)   
    {   
        var value = parseFloat(obj.value);   
        var dtype = obj.eos_datatype;   
        var pos_dtype = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(",");   
        var minLimit = pos_dtype[0];   
        var maxLimit = pos_dtype[1];   
        var minVal = parseFloat(pos_dtype[0]);   
        var maxVal = parseFloat(pos_dtype[1]);    
        if(isNaN(value))   
        {   
            f_alert(obj, "值必须为数字");   
            return false;   
        }   
        if((isNaN(minVal) && (minLimit != "-")) || (isNaN(maxVal) && (maxLimit != "+")))   
        {   
            f_alert(obj, "边界值必须为数字或-、+");   
            return false;   
        }   
        if(minLimit == "-" && !isNaN(maxVal))   
        {   
            if(value > maxVal)   
            {   
                f_alert(obj, "值不能超过" + maxVal);   
                return false;   
            }   
        }   
        if(!isNaN(minVal) && maxLimit == "+")   
        {          
            if(value < minVal)   
            {   
                f_alert(obj, "值不能小于" + minVal);   
                return false;   
            }   
        }   
        if(!isNaN(minVal) && !isNaN(maxVal))   
        {   
            if(minVal > maxVal)   
            {   
                f_alert(obj, "起始值" + minVal + "不能大于终止值" + maxVal);   
            }else  
            {   
                if(!(value <= maxVal && value >= minVal))   
                {   
                    f_alert(obj, "值应该在" + minVal + "和" + maxVal + "之间");   
                    return false;   
                }   
            }   
        }   
        return true;   
    }   
        

/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false
*/
 
    function f_check_zh(obj){   
        if (/^[\u4e00-\u9fa5]+$/.test(obj.value)) {   
          return true;   
        }   
        f_alert(obj,"请输入汉字");   
        return false;   
    }   
        

/*
* 判断是否为小写英文字母,是则返回true,否则返回false
*/
 
    function f_check_lowercase(obj)   
    {          
        if (/^[a-z]+$/.test( obj.value ))    
        {   
           return true;   
        }    
        f_alert(obj,"请输入小写英文字母");   
        return false;   
    }   
        

/*
* 判断是否为大写英文字母,是则返回true,否则返回false
*/
 
    function f_check_uppercase(obj)   
    {          
        if (/^[A-Z]+$/.test( obj.value ))    
        {   
           return true;   
        }    
        f_alert(obj,"请输入大写英文字母");   
        return false;   
    }   
        

/*
* 判断是否为英文字母,是则返回true,否则返回false
*/
 
    function f_check_letter(obj)   
    {          
        if (/^[A-Za-z]+$/.test( obj.value ))    
        {   
           return true;   
        }    
        f_alert(obj,"请输入英文字母");   
        return false;   
    }   
        

/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/
 
    function f_check_ZhOrNumOrLett(obj){    //判断是否是汉字、字母、数字组成   
        var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";      
        var re = new RegExp(regu);   
        if (re.test( obj.value )) {   
          return true;   
        }   
        f_alert(obj,"请输入汉字、字母或数字");   
        return false;   
    }   
        

/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/
 
    function f_check_IP(obj)    
    {    
        var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; //匹配IP地址的正则表达式   
        if(re.test( obj.value ))   
        {   
            if(   RegExp.$1<=255 && RegExp.$1>=0 
    &&RegExp.$2<=255 && RegExp.$2>=0 
    &&RegExp.$3<=255 && RegExp.$3>=0  
    &&RegExp.$4<=255 && RegExp.$4>=0 )
    {
     return true;
    } 
        }   
        f_alert(obj,"请输入合法的计算机IP地址");   
        return false;    
    }   
        

/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
 
    function f_check_port(obj)   
    {   
        if(!f_check_number(obj))   
            return false;   
        if(obj.value < 65536)   
            return true;   
        f_alert(obj,"请输入合法的计算机IP地址端口号");   
        return false;    
    }   
        

/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
 
    function f_check_URL(obj){     
        var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;    
        if(myReg.test( obj.value )) return true;    
        f_alert(obj,"请输入合法的网页地址");   
        return false;    
    }   
        

/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
 
    function f_check_email(obj){     
        var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;    
        if(myReg.test( obj.value )) return true;    
        f_alert(obj,"请输入合法的电子邮件地址");   
        return false;    
    }   
        

/*
要求:一、移动电话号码为11或12位,如果为12位,那么第一位为0
二、11位移动电话号码的第一位和第二位为"13"
三、12位移动电话号码的第二位和第三位为"13"
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
 
    function f_check_mobile(obj){      
        var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;   
        var re = new RegExp(regu);   
        if (re.test( obj.value )) {   
          return true;   
        }   
        f_alert(obj,"请输入正确的手机号码");   
        return false;      
    }   
        

/*
要求:一、电话号码由数字、"("、")"和"-"构成
二、电话号码为3到8位
三、如果电话号码中包含有区号,那么区号为三位或四位
四、区号用"("、")"或"-"和其他部分隔开
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/
 
    function f_check_phone(obj)    
    {   
        var regu =/(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;    
        var re = new RegExp(regu);   
        if (re.test( obj.value )) {   
          return true;   
        }   
        f_alert(obj,"请输入正确的电话号码");   
        return false;   
    }   
        

/* 判断是否为邮政编码 */
 
    function f_check_zipcode(obj)   
    {   
        if(!f_check_number(obj))   
            return false;   
        if(obj.value.length!=6)   
        {   
            f_alert(obj,"邮政编码长度必须是6位");   
            return false;   
        }   
        return true;   
    }   
        

/*
用户ID,可以为数字、字母、下划线的组合,
第一个字符不能为数字,且总长度不能超过20。
*/
 
    function f_check_userID(obj)   
    {   
        var userID = obj.value;   
        if(userID.length > 20)   
        {   
            f_alert(obj,"ID长度不能大于20");   
            return false;   
        }   
        if(!isNaN(userID.charAt(0)))   
        {   
            f_alert(obj,"ID第一个字符不能为数字");   
            return false;   
        }   
        if(!/^\w{1,20}$/.test(userID))    
        {   
            f_alert(obj,"ID只能由数字、字母、下划线组合而成");   
            return false;   
        }   
        return true;   
    }   
        

/*
功能:验证身份证号码是否有效
提示信息:未输入或输入身份证号不正确!
使用:f_check_IDno(obj)
返回:bool
*/
 
    function f_check_IDno(obj)   
    {    
        var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};   
        var iSum = 0;   
        var info = "";   
        var strIDno = obj.value;   
        var idCardLength = strIDno.length;     
        if(!/^\d{17}(\d|x)$/i.test(strIDno)&&!/^\d{15}$/i.test(strIDno))    
        {   
            f_alert(obj,"非法身份证号");   
            return false;   
        }   
        //在后面的运算中x相当于数字10,所以转换成a   
        strIDno = strIDno.replace(/x$/i,"a");   
        if(aCity[parseInt(strIDno.substr(0,2))]==null)   
        {   
            f_alert(obj,"非法地区");   
            return false;   
        }   
        if (idCardLength==18)   
        {   
            sBirthday=strIDno.substr(6,4)+"-"+Number(strIDno.substr(10,2))+"-"+Number(strIDno.substr(12,2));   
            var d = new Date(sBirthday.replace(/-/g,"/"))   
            if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))   
            {          
                f_alert(obj,"非法生日");   
                return false;   
            }   
            for(var i = 17;i>=0;i --)   
                iSum += (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 - i),11);   
            if(iSum%11!=1)   
            {   
                f_alert(obj,"非法身份证号");   
                return false;   
            }   
        }   
        else if (idCardLength==15)   
        {   
            sBirthday = "19" + strIDno.substr(6,2) + "-" + Number(strIDno.substr(8,2)) + "-" + Number(strIDno.substr(10,2));   
            var d = new Date(sBirthday.replace(/-/g,"/"))   
            var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();      
            if(sBirthday != dd)   
            {   
                f_alert(obj,"非法生日");   
                return false;   
            }   
        }   
        return true;    
    }   
        

/*
* 判断字符串是否符合指定的正则表达式
*/
 
    function f_check_formatStr(obj)   
    {   
        var str = obj.value;   
        var dtype = obj.eos_datatype;   
        var regu = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));    //指定的正则表达式   
        var re = new RegExp(regu);   
        if(re.test(str))   
            return true;   
        f_alert(obj , "不符合指定的正则表达式要求");   
        return false;      
    }   
        

/*
功能:判断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
提示信息:未输入或输入的日期格式错误!
使用:f_check_date(obj)
返回:bool
*/
 
    function f_check_date(obj)   
    {   
        var date = Trim(obj.value);   
        var dtype = obj.eos_datatype;   
        var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
        var year,month,day,datePat,matchArray;   
        if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))   
            datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/;   
        else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format))   
            datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日$/;   
        else if(format=="yyyyMMdd")   
            datePat = /^(\d{4})(\d{2})(\d{2})$/;   
        else  
        {   
            f_alert(obj,"日期格式不对");   
            return false;   
        }   
        matchArray = date.match(datePat);   
        if(matchArray == null)    
        {   
            f_alert(obj,"日期长度不对,或日期中有非数字符号");   
            return false;   
        }   
        if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))   
        {   
            year = matchArray[1];   
            month = matchArray[3];   
            day = matchArray[4];   
        } else  
        {   
            year = matchArray[1];   
            month = matchArray[2];   
            day = matchArray[3];   
        }   
        if (month < 1 || month > 12)   
        {                
            f_alert(obj,"月份应该为1到12的整数");   
            return false;   
        }   
        if (day < 1 || day > 31)   
        {   
            f_alert(obj,"每个月的天数应该为1到31的整数");   
            return false;   
        }        
        if ((month==4 || month==6 || month==9 || month==11) && day==31)   
        {   
            f_alert(obj,"该月不存在31号");   
            return false;   
        }        
        if (month==2)   
        {   
            var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
            if (day>29)   
            {                  
                f_alert(obj,"2月最多有29天");   
                return false;   
            }   
            if ((day==29) && (!isleap))   
            {                  
                f_alert(obj,"闰年2月才有29天");   
                return false;   
            }   
        }   
        return true;   
    }   
        

/*
功能:校验的格式为yyyy年MM月dd日HH时mm分ss秒,yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss,yyyyMMddHHmmss
提示信息:未输入或输入的时间格式错误
使用:f_check_time(obj)
返回:bool
*/
 
    function f_check_time(obj)   
    {   
        var time = Trim(obj.value);   
        var dtype = obj.eos_datatype;   
        var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
        var datePat,matchArray,year,month,day,hour,minute,second;   
        if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2}) (HH:mm:ss)$/.test(format))   
            datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;   
        else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)(HH时mm分ss秒)$/.test(format))   
            datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日(\d{1,2})时(\d{1,2})分(\d{1,2})秒$/;   
        else if(format == "yyyyMMddHHmmss")   
            datePat = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;   
        else  
        {   
            f_alert(obj,"日期格式不对");   
            return false;   
        }   
        matchArray = time.match(datePat);   
        if(matchArray == null)    
        {   
            f_alert(obj,"日期长度不对,或日期中有非数字符号");   
            return false;   
        }   
        if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2}) (HH:mm:ss)$/.test(format))   
        {   
            year = matchArray[1];   
            month = matchArray[3];   
            day = matchArray[4];   
            hour = matchArray[5];   
            minute = matchArray[6];   
            second = matchArray[7];   
        } else  
        {   
            year = matchArray[1];   
            month = matchArray[2];   
            day = matchArray[3];   
            hour = matchArray[4];   
            minute = matchArray[5];   
            second = matchArray[6];   
        }   
        if (month < 1 || month > 12)   
        {                
            f_alert(obj,"月份应该为1到12的整数");   
            return false;   
        }   
        if (day < 1 || day > 31)   
        {              
            f_alert(obj,"每个月的天数应该为1到31的整数");   
            return false;   
        }        
        if ((month==4 || month==6 || month==9 || month==11) && day==31)   
        {            
            f_alert(obj,"该月不存在31号");   
            return false;   
        }        
        if (month==2)   
        {   
            var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
            if (day>29)   
            {                  
                f_alert(obj,"2月最多有29天");   
                return false;   
            }   
            if ((day==29) && (!isleap))   
            {                  
                f_alert(obj,"闰年2月才有29天");   
                return false;   
            }   
        }   
        if(hour<0 || hour>23)   
        {   
            f_alert(obj,"小时应该是0到23的整数");   
            return false;   
        }   
        if(minute<0 || minute>59)   
        {   
            f_alert(obj,"分应该是0到59的整数");   
            return false;   
        }   
        if(second<0 || second>59)   
        {   
            f_alert(obj,"秒应该是0到59的整数");   
            return false;   
        }   
        return true;   
    }   
        

/*判断当前对象是否可见*/
 
    function isVisible(obj){   
        var visAtt,disAtt;   
        try{   
            disAtt=obj.style.display;   
            visAtt=obj.style.visibility;   
        }catch(e){}   
        if(disAtt=="none" || visAtt=="hidden")   
            return false;   
        return true;   
    }   
        

/*判断当前对象及其父对象是否可见*/
 
    function checkPrVis(obj){   
        var pr=obj.parentNode;   
        do{   
            if(pr == undefined || pr == "undefined") return true;   
            else{   
                if(!isVisible(pr)) return false;   
            }   
        }while(pr=pr.parentNode);   
        return true;   
    }   
        

/* 弹出警告对话框,用户点确定后将光标置于出错文本框上, 并且将原来输入内容选中。*/
 
    function f_alert(obj,alertInfo)   
    {   
        var caption = obj.getAttribute("eos_displayname");   
        if(caption == null)   
            caption = "";   
        alert(caption + ":" + alertInfo + "!");    
        obj.select();   
        if(isVisible(obj) && checkPrVis(obj))   
            obj.focus();   
    }   
        

/**
* 检测字符串是否为空
*/
 
    function isnull(str)   
    {   
        var i;   
        if(str.length == 0)   
            return true;   
        for (i=0;i<str.length;i++)   
        {   
            if (str.charAt(i)!=' ')    
                return false;   
        }   
        return true;   
    }   
        

/**
* 检测指定文本框输入是否合法。
* 如果用户输入的内容有错,则弹出提示对话框,
* 同时将焦点置于该文本框上,并且该文本框前面
* 会出现一个警告图标(输入正确后会自动去掉)。
*/
 
    function checkInput(object)   
    {   
        var image;   
        var i;   
        var length;   
        if(object.eos_maxsize + "" != "undefined") length = object.eos_maxsize;   
        else length = 0;   
        if (object.eos_isnull=="true" && isnull(object.value))  return true;   
        /* 长度校验 */  
        if(length != 0 && strlen(object.value) > parseInt(length)) {   
                f_alert(object, "超出最大长度" + length);   
                return false;   
        }    
        /* 数据类型校验 */  
        else {   
            if (object.eos_datatype + "" != "undefined")   
            {          
                var dtype = object.eos_datatype;   
                var objName = object.name;   
                //如果类型名后面带有括号,则视括号前面的字符串为校验类型   
                if(dtype.indexOf("(") != -1)   
                    dtype = dtype.substring(0,dtype.indexOf("("));   
                //根据页面元素的校验类型进行校验   
                try{   
                    if(eval("f_check_" + dtype + "(object)") != true)   
                        return false;   
                }catch(e){return true;}   
                /*  如果form中存在name前半部分相同,并且同时存在以"min"和"max"结尾的表单域,  
                    那么视为按区间查询。即"min"结尾的表单域的值要小于等于"max"结尾的表单域的值。 */  
                if(objName.substring((objName.length-3),objName.length)=="min")   
                {   
                    var objMaxName = objName.substring(0, (objName.length-3)) + "max";   
                    if(document.getElementById(objMaxName) != undefined && document.getElementById(objMaxName) != "undefined" )   
                    {   
                        if(checkIntervalObjs(object, document.getElementById(objMaxName)) != true)   
                            return false;                      
                    }   
                }              
            }   
        }   
        return true;   
    }   
        

/* 检测表单中所有输入项的正确性,一般用于表单的onsubmit事件 */
 
    function checkForm(myform)   
    {   
        var i;   
        for (i=0;i<myform.elements.length;i++)   
        {   
            /* 非自定义属性的元素不予理睬 */        
            if (myform.elements[i].eos_displayname + "" == "undefined") continue;   
            /* 非空校验 */  
            if (myform.elements[i].eos_isnull=="false" && isnull(myform.elements[i].value)){   
                f_alert(myform.elements[i],"不能为空");   
                return false;   
            }          
            /* 数据类型校验 */  
            if (checkInput(myform.elements[i])==false)   
                return false;                  
        }   
        return true;   
    }   
        

/**
* 校验两个表单域数据的大小,目前只允许比较日期和数字。
* @param obj1 小值表单域
* @param obj2 大值表单域
*/
 
    function checkIntervalObjs(obj1 , obj2)   
    {      
        var caption1 = obj1.getAttribute("eos_displayname");   
        var caption2 = obj2.getAttribute("eos_displayname");   
        var val1 = parseFloat(obj1.value);   
        var val2 = parseFloat(obj2.value);   
        // 非自定义属性的元素不予理睬   
        if (obj1.eos_displayname + "" == "undefined" || obj2.eos_displayname + "" == "undefined") {   
            return false;   
        }   
        // 日期类型的比较   
        if(f_check_date(obj1) == true && f_check_date(obj2) == true){   
            var dtype = obj1.eos_datatype;   
            var format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
            val1 = getDateByFormat(obj1.value, format);   
            dtype = obj2.eos_datatype;   
            format = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")"));  //日期格式   
            val2 = getDateByFormat(obj2.value, format);   
            if(val1 > val2){   
            obj2.select();   
            if(isVisible(obj) && checkPrVis(obj))   
                obj2.focus();   
            alert(caption1 + "的起始日期不能大于其终止日期!");   
            return false;   
            }   
        }   
        // 数字类型的比较   
        if((isNaN(val1) && !isnull(val1)) || (isNaN(val2) && !isnull(val2))){   
            alert(caption1 + "的值不全为数字则不能比较!");   
            return false;   
        }   
        if(val1 > val2){   
            obj2.select();   
            if(isVisible(obj) && checkPrVis(obj))   
                obj2.focus();   
            alert(caption1 + "的起始值不能大于其终止值!");   
            return false;   
        }   
        return true;   
    }   
        
 
/*根据日期格式,将字符串转换成Date对象。
格式:yyyy-年,MM-月,dd-日,HH-时,mm-分,ss-秒。
(格式必须写全,例如:yy-M-d,是不允许的,否则返回null;格式与实际数据不符也返回null。)
默认格式:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd。*/
 
    function getDateByFormat(str){   
        var dateReg,format;   
        var y,M,d,H,m,s,yi,Mi,di,Hi,mi,si;   
        if((arguments[1] + "") == "undefined") format = "yyyy-MM-dd HH:mm:ss";   
        else format = arguments[1];   
        yi = format.indexOf("yyyy");   
        Mi = format.indexOf("MM");   
        di = format.indexOf("dd");   
        Hi = format.indexOf("HH");   
        mi = format.indexOf("mm");   
        si = format.indexOf("ss");   
        if(yi == -1 || Mi == -1 || di == -1) return null;   
        else{   
            y = parseInt(str.substring(yi, yi+4));   
            M = parseInt(str.substring(Mi, Mi+2));   
            d = parseInt(str.substring(di, di+2));   
        }   
        if(isNaN(y) || isNaN(M) || isNaN(d)) return null;   
        if(Hi == -1 || mi == -1 || si == -1) return new Date(y, M-1, d);   
        else{   
            H = str.substring(Hi, Hi+4);   
            m = str.substring(mi, mi+2);   
            s = str.substring(si, si+2);   
        }   
        if(isNaN(parseInt(y)) || isNaN(parseInt(M)) || isNaN(parseInt(d))) return new Date(y, M-1, d);   
        else return new Date(y, M-1, d,H, m, s);   
    }   
        

/*LTrim(string):去除左边的空格*/
 
    function LTrim(str){   
        var whitespace = new String(" \t\n\r");   
        var s = new String(str);      
        if (whitespace.indexOf(s.charAt(0)) != -1){   
            var j=0, i = s.length;   
            while (j < i && whitespace.indexOf(s.charAt(j)) != -1){   
                j++;   
            }   
            s = s.substring(j, i);   
        }   
        return s;   
    }   
        

/*RTrim(string):去除右边的空格*/
 
    function RTrim(str){   
        var whitespace = new String(" \t\n\r");   
        var s = new String(str);   
        if (whitespace.indexOf(s.charAt(s.length-1)) != -1){   
            var i = s.length - 1;   
            while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1){   
                i--;   
            }   
            s = s.substring(0, i+1);   
        }   
        return s;   
    }   
        

/*Trim(string):去除字符串两边的空格*/
 
    function Trim(str){   
        return RTrim(LTrim(str));   
    }
Javascript 相关文章推荐
js实现的复制兼容chrome和IE
Apr 03 Javascript
通过js来制作复选框的全选和不选效果
May 22 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
node.js中格式化数字增加千位符的几种方法
Jul 03 Javascript
js运动事件函数详解
Oct 21 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
javascript数组去重常用方法实例分析
Apr 11 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
Webpack性能优化 DLL 用法详解
Aug 10 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
May 10 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 #Javascript
Jquery性能优化详解
May 15 #Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
May 15 #Javascript
Javascript小技巧之生成html元素
May 15 #Javascript
javascript屏蔽右键代码
May 15 #Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
May 15 #Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 #Javascript
You might like
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
PHP.vs.JAVA
2016/04/29 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
定义select的边框颜色
2008/04/28 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
影视制作岗位职责
2013/12/04 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
毕业生个人自荐书
2015/03/05 职场文书
2015年双拥工作总结
2015/04/08 职场文书
毕业证明书
2015/06/19 职场文书
医院消毒隔离制度
2015/08/05 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python