关于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表单验证年龄
JavaScript表单验证年龄,判断一个输入量是否符合年龄,通过正则表达式实现. //检查年龄 function isAge(str){ var mydate=new Date; var now=m ...
- 前端工具 - 15个最佳的 JavaScript 表单验证库
客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...
- JavaScript表单验证和正则表达式
JavaScript表单验证 分为四类: 1.非空验证 常用于用户名等 2.相等验证 常用于验证两次输入的密码 3.范围验证 常用于年龄等 4.正则验证 用于手机号,邮箱号等 以下是实例: <! ...
- 15个最佳的 JavaScript 表单验证库
客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...
- JavaScript 表单验证入门
JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单 ...
- JavaScript 表单验证 案例
JavaScript 表单验证 案例 版权声明:未经授权,严禁转载! 编写 HTML 文件,搭建主体界面 <html> <head> <meta charset=&q ...
- 10个强大的Javascript表单验证插件推荐
创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...
- JavaScript 表单验证正则表达式大全
JavaScript 表单验证正则表达式大全[转载] 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...
- javascript表单验证
表单HTML <form action="" method="post"> <fieldset class="login" ...
- JavaScript表单验证实例
1. 长度限制<script>function test(){if(document.a.b.value.length>50){alert("不能超过50个字符!" ...
随机推荐
- Linux知识(6)----VIM
vi的第一版是由Bill Joy在1978年写成的,当时他是UC Berkeley的学生.后来他共同创建了神奇的Sun公司.vi来源于visual一词,目标是在终端上可视化地模拟文本的编辑,是的更人性 ...
- 谈谈SQL server的 worker threads-----微软亚太区数据库技术支持组 官方博客
https://blogs.msdn.microsoft.com/apgcdsd/2012/11/27/sql-server-worker-threads/
- Asp.Net Session的三种方法及Web.Config设置
转载:http://user.gw-ec.com/login/safelog/redirectt?session=so%2f%2bSjyZURMOe54xgk%2bUhL2CgGqDjOKEbYwZS ...
- ffmpeg的IO操作
ffmpeg 可以通过IO操作将数据读取和存储在文件或网络中 作为数据的读取和写入地址,数据被存放在file,http, ffmpeg 不仅可以编解常用的音视频格式,还可以将数据导入/导出到各种媒介中 ...
- 让linux history命令显示命令的运行时间、在哪个机器运行的这个命令
1.在/etc/profile的最后加入例如以下部分: USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g ...
- 【资料】wod烟草
注意: 1. 所有效果持续时间是整个地城 2. 某几样菸草在使用 烟雾的祝福 的时候效果只有LV1 (技能 -25), 表示该物品设计上主要是自己使用而非加给团队. SL = 技能等级 HL = 英雄 ...
- ubuntu 安装 consul
$ wget https://releases.hashicorp.com/consul/1.1.0/consul_1.1.0_linux_amd64.zip $ sudo apt-get insta ...
- hdu 1398
题目大意:输入是一个整数.输出他的拆分数(即拆分的方案数),本题与1028最大的不同之处就在于他的面额只能是整数的平方 代码如下: /* * 1398_1.cpp * * Created on: 20 ...
- metal2的四个新features
https://developer.apple.com/documentation/metal/mtldevice/ios_and_tvos_devices/about_gpu_family_4 Im ...
- SQL Alias
There are two types of aliases that are used most frequently in SQL command: which is column alias a ...