Javascript验证方法大全


Posted in Javascript onSeptember 21, 2015

本文整理了关于Javascript表单验证的所有涉及到的,大家仔细阅读一定会有所收获的 

//验证字符串非空 


var Validator = { 
  VerityLib: { 
       IsNotEmpty: function (input) { 
      if (input != '') { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证数字(double类型) [可以包含负号和小数点] 
    IsNumber: function (input) { 
      var regex = /^-?\d+$|^(-?\d+)(\.\d+)?$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证整数 
    IsInteger: function (input) { 
      var regex = /^-?\d+$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


//验证非负整数 
    IsIntegerNotNagtive: function (input) { 
      var regex = /^\d+$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证正整数 
    IsIntegerPositive: function (input) { 
      var regex = /^[0-9]*[1-9][0-9]*$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证小数 
    IsDecimal: function (input) { 
      var regex = /^([-+]?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*)$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    },    

//验证只包含英文字母 
    IsEnglishCharacter: function (input) { 
      var regex = /^[A-Za-z]+$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证只包含数字和英文字母 
    IsIntegerAndEnglishCharacter: function (input) { 
      var regex = /^[0-9A-Za-z]+$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证只包含汉字 
    IsChineseCharacter: function (input) { 
      var regex = /^[\u4e00-\u9fa5]+$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证数字长度范围(数字前端的0计长度)[若要验证固定长度,可传入相同的两个长度数值] 
    IsIntegerLength: function (input, lengthBegin, lengthEnd) { 
      var pattern = '^\\d{' + lengthBegin + ',' + lengthEnd + '}$'; 
      var regex = new RegExp(pattern); 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


//验证字符串包含内容 
    IsStringInclude: function (input, withEnglishCharacter, withNumber, withChineseCharacter) { 
      if (!Boolean(withEnglishCharacter) && !Boolean(withNumber) && !Boolean(withChineseCharacter)) { 
        return false; //如果英文字母、数字和汉字都没有,则返回false 
      } 
      var pattern = '^['; 
      if (Boolean(withEnglishCharacter)) { 
        pattern += 'a-zA-Z'; 
      } 
      if (Boolean(withNumber)) { 
        pattern += '0-9'; 
      } 
      if (Boolean(withChineseCharacter)) { 
        pattern += '\\u4E00-\\u9FA5'; 
      } 
      pattern += ']+$'; 
      var regex = new RegExp(pattern); 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证字符串长度范围 [若要验证固定长度,可传入相同的两个长度数值] 
    IsStringLength: function (input, LengthBegin, LengthEnd) { 
      var pattern = '^.{' + lengthBegin + ',' + lengthEnd + '}$'; 
      var regex = new RegExp(pattern); 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证字符串长度范围(字符串内只包含数字和/或英文字母)[若要验证固定长度,可传入相同的两个长度数值] 
    IsStringLengthOnlyNumberAndEnglishCharacter: function (input, LengthBegin, LengthEnd) { 
      var pattern = '^[0-9a-zA-z]{' + lengthBegin + ',' + lengthEnd + '}$'; 
      var regex = new RegExp(pattern); 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证字符串长度范围 [若要验证固定长度,可传入相同的两个长度数值] 
    IsStringLengthByInclude: function (input, withEnglishCharacter, withNumber, withChineseCharacter, lengthBegin, lengthEnd) { 
      if (!withEnglishCharacter && !withNumber && !withChineseCharacter) { 
        return false; //如果英文字母、数字和汉字都没有,则返回false 
      } 
      var pattern = '^['; 
      if (Boolean(withEnglishCharacter)) 
        pattern += 'a-zA-Z'; 
      if (Boolean(withNumber)) 
        pattern += '0-9'; 
      if (Boolean(withChineseCharacter)) 
        pattern += '\\u4E00-\\u9FA5'; 
      pattern += ']{' + lengthBegin + ',' + lengthEnd + '}$'; 
      var regex = new RegExp(pattern); 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


//验证字符串字节数长度范围 [若要验证固定长度,可传入相同的两个长度数值;每个汉字为两个字节长度] 
    IsStringByteLength: function (input, lengthBegin, lengthEnd) { 
      var regex = /[^\x00-\xff]/g; 
      var byteLength = input.replace(regex, 'ok').length; 
      if (byteLength >= lengthBegin && byteLength <= lengthEnd) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 


 //验证日期 [只能验证日期,不能验证时间] 
    IsDateTime: function (input) { 
      if (Date.parse(input)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

//验证固定电话号码 [3位或4位区号;区号可以用小括号括起来;区号可以省略;区号与本地号间可以用减号或空格隔开;可以有3位数的分机号,分机号前要加减号] 
    IsTelePhoneNumber: function (input) { 
      var regex = /^(((0\d2|0\d{2})[- ]?)?\d{8}|((0\d3|0\d{3})[- ]?)?\d{7})(-\d{3})?$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证手机号码 [可匹配"(+86)013325656352",括号可以省略,+号可以省略,(+86)可以省略,11位手机号前的0可以省略;11位手机号第二位数可以是3、4、5、8中的任意一个] 
    IsMobilePhoneNumber: function (input) { 
      var regex = /^((\+)?86|((\+)?86)?)0?1[3458]\d{9}$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证电话号码(可以是固定电话号码或手机号码) 
    IsPhoneNumber: function (input) { 
      var regex = /^((\+)?86|((\+)?86)?)0?1[3458]\d{9}$|^(((0\d2|0\d{2})[- ]?)?\d{8}|((0\d3|0\d{3})[- ]?)?\d{7})(-\d{3})?$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证邮政编码 
    IsZipCode: function (input) { 
      var regex = /^\d{6}$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证电子邮箱 [@字符前可以包含字母、数字、下划线和点号;@字符后可以包含字母、数字、下划线和点号;@字符后至少包含一个点号且点号不能是最后一个字符;最后一个点号后只能是字母或数字] 
    IsEmail: function (input) { 
      ////邮箱名以数字或字母开头;邮箱名可由字母、数字、点号、减号、下划线组成;邮箱名(@前的字符)长度为3~18个字符;邮箱名不能以点号、减号或下划线结尾;不能出现连续两个或两个以上的点号、减号。 
      //var regex = /^[a-zA-Z0-9]((?<!(\.\.|--))[a-zA-Z0-9\._-]){1,16}[a-zA-Z0-9]@([0-9a-zA-Z][0-9a-zA-Z-]{0,62}\.)+([0-9a-zA-Z][0-9a-zA-Z-]{0,62})\.?|((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/; 
      var regex = /^([\w-\.]+)@([\w-\.]+)(\.[a-zA-Z0-9]+)$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证网址(可以匹配IPv4地址但没对IPv4地址进行格式验证;IPv6暂时没做匹配)[允许省略"://";可以添加端口号;允许层级;允许传参;域名中至少一个点号且此点号前要有内容] 
    IsURL: function (input) { 
      ////每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,单个域长度不超过63,完整的域名全长不超过256个字符。在DNS系统中,全名是以一个点“.”来结束的,例如“www.nit.edu.cn.”。没有最后的那个点则表示一个相对地址。  
      ////没有例如"http://"的前缀,没有传参的匹配 
      //var regex = /^([0-9a-zA-Z][0-9a-zA-Z-]{0,62}\.)+([0-9a-zA-Z][0-9a-zA-Z-]{0,62})\.?$/; 
 
      //var regex = /^(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&%_\./-~-]*)?$/; 
      var regex = /^([a-zA-Z]+:\/\/)?([\w-\.]+)(\.[a-zA-Z0-9]+)(:\d{0,5})?\/?([\w-\/]*)\.?([a-zA-Z]*)\??(([\w-]*=[\w%]*&?)*)$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证IPv4地址 [第一位和最后一位数字不能是0或255;允许用0补位] 
    IsIPv4: function (input) { 
      var regex = /^(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证IPv6地址 [可用于匹配任何一个合法的IPv6地址] 
    IsIPv6: function (input) { 
      var regex = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

 //验证身份证号 [可验证一代或二代身份证] 
    IsIDCard: function (input) { 
      input = input.toUpperCase(); 
      //验证身份证号码格式 [一代身份证号码为15位的数字;二代身份证号码为18位的数字或17位的数字加字母X] 
      if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/i.test(input))) { 
        return false; 
      } 
      //验证省份 
      var arrCity = { 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: '国外' }; 
      if (arrCity[parseInt(input.substr(0, 2))] == null) { 
        return false; 
      } 
      

//验证出生日期 
      var regBirth, birthSplit, birth; 
      var len = input.length; 
      if (len == 15) { 
        regBirth = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); 
        birthSplit = input.match(regBirth); 
        birth = new Date('19' + birthSplit[2] + '/' + birthSplit[3] + '/' + birthSplit[4]); 
        if (!(birth.getYear() == Number(birthSplit[2]) && (birth.getMonth() + 1) == Number(birthSplit[3]) && birth.getDate() == Number(birthSplit[4]))) { 
          return false; 
        } 
        return true; 
      } 
      else if (len == 18) { 
        regBirth = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/i); 
        birthSplit = input.match(regBirth); 
        birth = new Date(birthSplit[2] + '/' + birthSplit[3] + '/' + birthSplit[4]); 
        if (!(birth.getFullYear() == Number(birthSplit[2]) && (birth.getMonth() + 1) == Number(birthSplit[3]) && birth.getDate() == Number(birthSplit[4]))) { 
          return false; 
        } 
        //验证校验码 
        var valnum; 
        var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
        var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
        var nTemp = 0, i; 
        for (i = 0; i < 17; i++) { 
          nTemp += input.substr(i, 1) * arrInt[i]; 
        } 
        valnum = arrCh[nTemp % 11]; 
        if (valnum != input.substr(17, 1)) { 
          return false; 
        } 
        return true; 
      } 
      return false; 
    }, 
    

 //验证经度 
    IsLongitude: function (input) { 
      var regex = /^[-\+]?((1[0-7]\d{1}|0?\d{1,2})\.\d{1,5}|180\.0{1,5})$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    }, 
    

//验证纬度 
    IsLatitude: function (input) { 
      var regex = /^[-\+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/; 
      if (input.match(regex)) { 
        return true; 
      } else { 
        return false; 
      } 
    } 
  } 
}

这次整理的很全面,很详细,希望可以真正的帮助到大家。对大家熟练掌握Javascript更有帮助。

Javascript 相关文章推荐
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
Oct 14 Javascript
jQuery获得document和window对象宽度和高度的方法
Mar 25 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
Apr 25 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
Aug 07 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
layUI实现前端分页和后端分页
Jul 27 Javascript
JS实现滚动条触底加载更多
Sep 19 Javascript
vue 遮罩层阻止默认滚动事件操作
Jul 28 Javascript
JavaScript验证Email(3种方法)
Sep 21 #Javascript
基于jQuery实现多层次的手风琴效果附源码
Sep 21 #Javascript
基于insertBefore制作简单的循环插空效果
Sep 21 #Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 #Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 #Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 #Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 #Javascript
You might like
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python 获取字符串MD5值方法
2018/05/29 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
django创建css文件夹的具体方法
2020/07/31 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
护士的岗位职责
2013/12/04 职场文书
人力资源作业细则
2014/03/03 职场文书
咖啡店创业计划书
2014/08/15 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书