zoukankan      html  css  js  c++  java
  • js正则数据验证归纳

    分享一个js数据验证类,主要是正则的使用

    /**
    * js数据验证类
    */
    var ValidateUtil = new function() 
    {
        /**
        * 用正则表达式替换前后空格
        *
        * @param str
        * @return str
        */
        this.trim= function(str)       
        {      
            var t = str.replace(/(^s*)|(s*$)/g, "");     
            return t.replace(/(^ *)|( *$)/g, "");     
        }
       /**
        * 去掉字符串左边的空格
        *
        * @param str
        * @return str
        */
        this.ltrim= function(str)       
        {      
            return str.replace(/(^s*)/g, ""); 
        }   
       /**
        * 去掉字符串右边的空格
        *
        * @param str
        * @return str
        */
        this.rtrim= function(str)       
        {      
        return str.replace(/(s*$)/g, "");  
        }     
        /**
        * 检查字符串是否为空
        *
        * @param str
        * @return boolean true:是,false:不是
        */      
        this.strIsNull=function(str)
        {
           if(str==undefined || str==null || str=="")
           {
                return true;
           }
           return false;
        }
        /**
        * 检查是否为英文
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isEng = function(str)
         {
            var re = /^[A-Za-z]+$/;
            return re.test(str);
        }
        /**
        * 检查是否为数字
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isInteger = function(str)
         {
            var re = /^[-]?[0-9]+$/;
            return re.test(str);
        }
        /**
        * 检查是否为正整数
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isPositiveInteger = function(str)
         {
            var re = /^[0-9]+$/;
            return re.test(str);
        }    
        /**
        * 检查是否为负整数
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isNegativeInteger = function(str) 
        {
            var re = /^-[0-9]+$/;
            return re.test(str);
        }      
         /**
        * 检查是否为汉字
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isChineseChar = function(str) 
        {
            var re = /^[u4e00-u9fa5]+$/;
            return re.test(str);
        }
        /**
        * 检查是否为英文和数字
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isEngInteger = function(str)
         {
            var re = /^[0-9A-Za-z]+$/;
            return re.test(str);
        }
        /**
        * 检查是否为英文和汉字
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isEngChinesechar = function(str) 
        {
            var re = /^[A-Za-zu4e00-u9fa5]+$/;
            return re.test(str);
        }   
        
        /**
        * 检查是否为英文汉字 下划线 和数字
        *
        * @param str
        * @return boolean true:是,false:不是
        */        
        this.isEngChinesecharIntegerUnderline = function(str) 
        {
            var re = /^[0-9A-Za-zu4e00-u9fa5_]+$/;
            return re.test(str);
        }   
          
        /**
        * 检查是否为数字和汉字
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isIntegerChinesechar= function(str) 
        {
            var re = /^[0-9u4e00-u9fa5]+$/;
            return re.test(str);
        }      
        /**
        * 检查是否为数字和字母和下划线
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isEngIntegerUnderline = function(str) 
        {
            var re = /^[0-9A-Za-z_]+$/;
            return re.test(str);
        }      
        /**
        * 检查字符串长度是否是 n位
        *
        * @param str  字符串
        * @param limitsize 限制长度
        * @return boolean true:是,false:不是
        */
        this.strIsOverlength = function(str,limitsize) 
        {
            if(this.strIsNull(str))
            {
                return false;   
            }
            if(str.length==limitsize)
            {
                return true;   
            }
            return false;
        }      
        /**
        * 检查字符串长度至少n位的限制
        *
        * @param str  字符串
        * @param leastsize 限制长度
        * @return boolean true:是,false:不是
        */
        this.strLeastsize = function(str,leastsize) 
        {
            if(this.strIsNull(str))
            {
                return false;   
            }
            if(str.length<=leastsize)
            {
                return true;   
            }
            return false;
        }  
        /**
        * 检查字符串长度至少n位 最多 m位 的限制
        *
        * @param str  字符串
        * @param leastminsize 最少限制长度
        * @param leastmaxsize 最多限制长度
        * @return boolean true:是,false:不是
        */
        this.strLeastnmsize = function(str,leastminsize,leastmaxsize)
         {
            if(this.strIsNull(str))
            {
                return false;   
            }
            if(str.length>=leastminsize && str.length<=leastmaxsize)
            {
                return true;   
            }
            return false;
        } 
        /**
        * 检查是否为浮点数
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isAge = function(str)
         {
            var re = /^(?:[1-9][0-9]?|1[01][0-9]|120)$/;
            return re.test(str);
        }       
        /**
        * 检查是否为浮点数
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isDouble = function(str) 
        {
            var re = /^d+(.d+)?$/;
            return re.test(str);
        }    
        /**
        * 检查至少n位 最多 m位 的限制的浮点数
        *
        * @param str  字符串
        * @param leastminsize 最少限制长度
        * @param leastmaxsize 最多限制长度
        * @return boolean true:是,false:不是
        */
        this.isDoubleLeastnmsize = function(str,leastminsize,leastmaxsize) 
        {
            var re =  eval("/^(0|[1-9]\d*)(\.\d{"+leastminsize+","+leastmaxsize+"})+$/");
            return re.test(str);
        }     
        /**
        * 检查是否为正浮点数
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isPositiveDouble= function(str)
         {
            var re = /^[1-9]d*.d*|0.d*[1-9]d*$/;
            return re.test(str);
        }     
        /**
        * 检查是否为负浮点数
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isNegativeDouble  = function(str) 
        {
            var re = /^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
            return re.test(str);
        }     
        /**
        * 检查两个字符串是否相等
        *
        * @param str  字符串
        * @param leastsize 限制长度
        * @return boolean true:是,false:不是
        */
        this.strEquals = function(str1,str2)
         {
            if(str1==str2)
            {
                return true;   
            }
            return false;
        }     
        /**
        * 检查是否为邮箱格式
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isEmail = function(str) 
        {
            var re = /^([a-zA-Z0-9]+[_|\_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/;
            return re.test(str);
        }       
        /**
        * 检查是否为电话格式  包括手机和固定电话
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isTelephone = function(str) 
        {  
           if(this.isMobile(str) || this.isFixedPhone(str))
           {
                return true; 
           }
            return false;
        }      
        /**
        * 检查是否为手机格式
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isMobile = function(str)
         {
            var re = /^(1)d{10}$/;
            return re.test(str);
        }      
        /**
        * 检查是否为固定电话
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isFixedPhone = function(str)
         {
            var re =/^(d{2,4}[-_-—]?)?d{3,9}([-_-—]?d{3,9})?([-_-—]?d{1,7})?$/;
            var re1 = /^0?1[35]d{9}$/;
            return (re.test(str) || re1.test(str));
        }   
        /**
        * 检查是否为邮政编码
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isZipCode = function(str) 
        {
            var re = /^[0-9]{6}$/;
            return re.test(str);
        } 
        /**
        * 检查是否为传真号码
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isFax = function(str) 
        {
            var re = /^(([0+]d{2,3}-)?(0d{2,3})-)(d{7,8})(-(d{3,}))?$/;
            return re.test(str);
        } 
        /**
        * 检查是否为url
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isURL = function(str)
         {
           var strRegex = "^([A-Za-z]*://)"
          + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@  
          + "(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184  
          + "|" // 允许IP和DOMAIN(域名)
          + "([0-9a-z_!~*'()-]+.)*" // 域名- www.  
          + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二级域名  
          + "[a-z]{2,6})" // first level domain- .com or .museum  
          + "(:[0-9]{1,4})?" // 端口- :80  
          + "((/?)|" // a slash isn't required if there is no file name  
          + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
          var re=new RegExp(strRegex);  
          return re.test(str);
        } 
        /**
        * 检查是否为中文url
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isChineseDomain = function(str) 
        {
            var re = /^[A-Za-z0-9u4E00-u9FA5][A-Za-z0-9u4E00-u9FA5-]{0,19}([.][A-Za-z0-9u4E00-u9FA5][A-Za-z0-9u4E00-u9FA5-]{0,19})*$/;
            return re.test(str);
        } 
        /**
        * 检查是否为ip地址
        * 包括 ipv4和ipv6
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isIPAddress = function(str)
         {
            if(this.isIPAddress4(str) || this.isIPAddress6(str))
            {
                return true;   
            }
            return false;
        }
        /**
        * 检查是否为ipv4
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isIPAddress4 = function(str) 
        {
            var ipreg = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/;
            return ipreg.test(str)
        }
        /**
        * 检查是否为ipv6
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isIPAddress6 = function(str)
         {
            var re = /^([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}$/;
            return re.test(str);
        }
        /**
        * 检查是否为qq号
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isQQ = function(str)
         {
            var re = /^[1-9]d{4,8}$/;
            return re.test(str);
        }
        /**
        * 检查是否为身份证
        *
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isIDCard = function(str) 
        {
            var re =/^d{15}$|d{17}[dXx]$/;
            return re.test(str);
        }    
        /**
        * 检查有效长日期格式是否正确 ,只检查位数不做正确性测试
        *  YYYY-MM-DD HH:MM:SS  YYYY/MM/DD HH:MM:SS
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isDateTime = function(str)
         {
            var re =/^(d{1,4})(-|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1,2})$/;
            return re.test(str);
        }      
        /**
        * 检查有效短日期格式是否正确 ,只检查位数不做正确性测试
        *  YYYY-MM-DD YYYY/MM/DD
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isDate = function(str)
         {
            var re =/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/;
            return re.test(str);
        }     
        /**
        * 检查是否是闰年 传入年份或者年月日
        * YYYY   YYYY-MM-DD
        * @param str 
        * @return boolean true:是,false:不是
        */
        this.isLeapYear = function(str)
         {
            if(this.strLeastsize(str,4))
            {
                var year = str.substring(0,4);
                if((year%4==0&& year%100!=0)||year%400==0)
                {
                    return true;   
                }       
            }        
            return false;
        }       
        /**
        * 文件扩展名名称是否是图片类型
        * @param str
        * @return boolean true:是,false:不是
        */
        this.isImageFiletype = function(str) 
        {
            var re =/.jpg$|.jpeg$|.gif$|.png$/i;
            return re.test(str);
        } 
    }
    

      

  • 相关阅读:
    【NOIP2009】【Vijos1752】潜伏者
    【NOIP2008】【Vijos1493】传纸条
    【NOIP2007】【Vijos1378】矩阵取数游戏
    【NOIP2006】【Luogu1063】能量项链
    【NOIP2004】【Luogu1091】合唱队形
    【NOIP2004】【Luogu1089】津津的储蓄计划
    【NOIP2005】【Luogu1052】过河
    【NOIP2004】【Luogu1090】合并果子
    【NOI2002】【Luogu1196】银河英雄传说(并查集带边权)
    【POJ3190】Stall Reservations
  • 原文地址:https://www.cnblogs.com/shiv/p/5091540.html
Copyright © 2011-2022 走看看