正则表达式验证汇总

一、收集1  (转自https://blog.csdn.net/jumtre/article/details/13775351)

  1 var Validator = {
  2     VerityLib: {
  3         //验证字符串非空
  4         IsNotEmpty: function (input) {
  5             if (input != '') {
  6                 return true;
  7             } else {
  8                 return false;
  9             }
 10         },
 11         //验证数字(double类型) [可以包含负号和小数点]
 12         IsNumber: function (input) {
 13             var regex = /^-?\d+$|^(-?\d+)(\.\d+)?$/;
 14             if (input.match(regex)) {
 15                 return true;
 16             } else {
 17                 return false;
 18             }
 19         },
 20         //验证整数
 21         IsInteger: function (input) {
 22             var regex = /^-?\d+$/;
 23             if (input.match(regex)) {
 24                 return true;
 25             } else {
 26                 return false;
 27             }
 28         },
 29         //验证非负整数
 30         IsIntegerNotNagtive: function (input) {
 31             var regex = /^\d+$/;
 32             if (input.match(regex)) {
 33                 return true;
 34             } else {
 35                 return false;
 36             }
 37         },
 38         //验证正整数
 39         IsIntegerPositive: function (input) {
 40             var regex = /^[0-9]*[1-9][0-9]*$/;
 41             if (input.match(regex)) {
 42                 return true;
 43             } else {
 44                 return false;
 45             }
 46         },
 47         //验证小数
 48         IsDecimal: function (input) {
 49             var regex = /^([-+]?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*)$/;
 50             if (input.match(regex)) {
 51                 return true;
 52             } else {
 53                 return false;
 54             }
 55         },
 56         //验证只包含英文字母
 57         IsEnglishCharacter: function (input) {
 58             var regex = /^[A-Za-z]+$/;
 59             if (input.match(regex)) {
 60                 return true;
 61             } else {
 62                 return false;
 63             }
 64         },
 65         //验证只包含数字和英文字母
 66         IsIntegerAndEnglishCharacter: function (input) {
 67             var regex = /^[0-9A-Za-z]+$/;
 68             if (input.match(regex)) {
 69                 return true;
 70             } else {
 71                 return false;
 72             }
 73         },
 74         //验证只包含汉字
 75         IsChineseCharacter: function (input) {
 76             var regex = /^[\u4e00-\u9fa5]+$/;
 77             if (input.match(regex)) {
 78                 return true;
 79             } else {
 80                 return false;
 81             }
 82         },
 83         //验证数字长度范围(数字前端的0计长度)[若要验证固定长度,可传入相同的两个长度数值]
 84         IsIntegerLength: function (input, lengthBegin, lengthEnd) {
 85             var pattern = '^\\d{' + lengthBegin + ',' + lengthEnd + '}$';
 86             var regex = new RegExp(pattern);
 87             if (input.match(regex)) {
 88                 return true;
 89             } else {
 90                 return false;
 91             }
 92         },
 93         //验证字符串包含内容
 94         IsStringInclude: function (input, withEnglishCharacter, withNumber, withChineseCharacter) {
 95             if (!Boolean(withEnglishCharacter) && !Boolean(withNumber) && !Boolean(withChineseCharacter)) {
 96                 return false; //如果英文字母、数字和汉字都没有,则返回false
 97             }
 98             var pattern = '^[';
 99             if (Boolean(withEnglishCharacter)) {
100                 pattern += 'a-zA-Z';
101             }
102             if (Boolean(withNumber)) {
103                 pattern += '0-9';
104             }
105             if (Boolean(withChineseCharacter)) {
106                 pattern += '\\u4E00-\\u9FA5';
107             }
108             pattern += ']+$';
109             var regex = new RegExp(pattern);
110             if (input.match(regex)) {
111                 return true;
112             } else {
113                 return false;
114             }
115         },
116         //验证字符串长度范围 [若要验证固定长度,可传入相同的两个长度数值]
117         IsStringLength: function (input, LengthBegin, LengthEnd) {
118             var pattern = '^.{' + lengthBegin + ',' + lengthEnd + '}$';
119             var regex = new RegExp(pattern);
120             if (input.match(regex)) {
121                 return true;
122             } else {
123                 return false;
124             }
125         },
126         //验证字符串长度范围(字符串内只包含数字和/或英文字母)[若要验证固定长度,可传入相同的两个长度数值]
127         IsStringLengthOnlyNumberAndEnglishCharacter: function (input, LengthBegin, LengthEnd) {
128             var pattern = '^[0-9a-zA-z]{' + lengthBegin + ',' + lengthEnd + '}$';
129             var regex = new RegExp(pattern);
130             if (input.match(regex)) {
131                 return true;
132             } else {
133                 return false;
134             }
135         },
136         //验证字符串长度范围 [若要验证固定长度,可传入相同的两个长度数值]
137         IsStringLengthByInclude: function (input, withEnglishCharacter, withNumber, withChineseCharacter, lengthBegin, lengthEnd) {
138             if (!withEnglishCharacter && !withNumber && !withChineseCharacter) {
139                 return false; //如果英文字母、数字和汉字都没有,则返回false
140             }
141             var pattern = '^[';
142             if (Boolean(withEnglishCharacter))
143                 pattern += 'a-zA-Z';
144             if (Boolean(withNumber))
145                 pattern += '0-9';
146             if (Boolean(withChineseCharacter))
147                 pattern += '\\u4E00-\\u9FA5';
148             pattern += ']{' + lengthBegin + ',' + lengthEnd + '}$';
149             var regex = new RegExp(pattern);
150             if (input.match(regex)) {
151                 return true;
152             } else {
153                 return false;
154             }
155         },
156         //验证字符串字节数长度范围 [若要验证固定长度,可传入相同的两个长度数值;每个汉字为两个字节长度]
157         IsStringByteLength: function (input, lengthBegin, lengthEnd) {
158             var regex = /[^\x00-\xff]/g;
159             var byteLength = input.replace(regex, 'ok').length;
160             if (byteLength >= lengthBegin && byteLength <= lengthEnd) {
161                 return true;
162             } else {
163                 return false;
164             }
165         },
166         //验证日期 [只能验证日期,不能验证时间]
167         IsDateTime: function (input) {
168             if (Date.parse(input)) {
169                 return true;
170             } else {
171                 return false;
172             }
173         },
174         //验证固定电话号码 [3位或4位区号;区号可以用小括号括起来;区号可以省略;区号与本地号间可以用减号或空格隔开;可以有3位数的分机号,分机号前要加减号]
175         IsTelePhoneNumber: function (input) {
176             var regex = /^(((\(0\d{2}\)|0\d{2})[- ]?)?\d{8}|((\(0\d{3}\)|0\d{3})[- ]?)?\d{7})(-\d{3})?$/;
177             if (input.match(regex)) {
178                 return true;
179             } else {
180                 return false;
181             }
182         },
183         //验证手机号码 [可匹配"(+86)013325656352",括号可以省略,+号可以省略,(+86)可以省略,11位手机号前的0可以省略;11位手机号第二位数可以是3、4、5、6、7、8、9中的任意一个]
184         IsMobilePhoneNumber: function (input) {
185             var regex = /^(\((\+)?86\)|((\+)?86)?)0?1[3456789]\d{9}$/;
186             if (input.match(regex)) {
187                 return true;
188             } else {
189                 return false;
190             }
191         },
192         //验证电话号码(可以是固定电话号码或手机号码)
193         IsPhoneNumber: function (input) {
194             var regex = /^(\((\+)?86\)|((\+)?86)?)0?1[3456789]\d{9}$|^(((\(0\d{2}\)|0\d{2})[- ]?)?\d{8}|((\(0\d{3}\)|0\d{3})[- ]?)?\d{7})(-\d{3})?$/;
195             if (input.match(regex)) {
196                 return true;
197             } else {
198                 return false;
199             }
200         },
201         //验证邮政编码
202         IsZipCode: function (input) {
203             var regex = /^\d{6}$/;
204             if (input.match(regex)) {
205                 return true;
206             } else {
207                 return false;
208             }
209         },
210         //验证电子邮箱 [@字符前可以包含字母、数字、下划线和点号;@字符后可以包含字母、数字、下划线和点号;@字符后至少包含一个点号且点号不能是最后一个字符;最后一个点号后只能是字母或数字]
211         IsEmail: function (input) {
212             ////邮箱名以数字或字母开头;邮箱名可由字母、数字、点号、减号、下划线组成;邮箱名(@前的字符)长度为3~18个字符;邮箱名不能以点号、减号或下划线结尾;不能出现连续两个或两个以上的点号、减号。
213             //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?)$/;
214             var regex = /^([\w-\.]+)@([\w-\.]+)(\.[a-zA-Z0-9]+)$/;
215             if (input.match(regex)) {
216                 return true;
217             } else {
218                 return false;
219             }
220         },
221         //验证网址(可以匹配IPv4地址但没对IPv4地址进行格式验证;IPv6暂时没做匹配)[允许省略"://";可以添加端口号;允许层级;允许传参;域名中至少一个点号且此点号前要有内容]
222         IsURL: function (input) {
223             ////每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,单个域长度不超过63,完整的域名全长不超过256个字符。在DNS系统中,全名是以一个点“.”来结束的,例如“www.nit.edu.cn.”。没有最后的那个点则表示一个相对地址。 
224             ////没有例如"http://"的前缀,没有传参的匹配
225             //var regex = /^([0-9a-zA-Z][0-9a-zA-Z-]{0,62}\.)+([0-9a-zA-Z][0-9a-zA-Z-]{0,62})\.?$/;
226  
227             //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\&%_\./-~-]*)?$/;
228             var regex = /^([a-zA-Z]+:\/\/)?([\w-\.]+)(\.[a-zA-Z0-9]+)(:\d{0,5})?\/?([\w-\/]*)\.?([a-zA-Z]*)\??(([\w-]*=[\w%]*&?)*)$/;
229             if (input.match(regex)) {
230                 return true;
231             } else {
232                 return false;
233             }
234         },
235         //验证IPv4地址 [第一位和最后一位数字不能是0或255;允许用0补位]
236         IsIPv4: function (input) {
237             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])$/;
238             if (input.match(regex)) {
239                 return true;
240             } else {
241                 return false;
242             }
243         },
244         //验证IPv6地址 [可用于匹配任何一个合法的IPv6地址]
245         IsIPv6: function (input) {
246             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*$/;
247             if (input.match(regex)) {
248                 return true;
249             } else {
250                 return false;
251             }
252         },
253         //验证身份证号 [可验证一代或二代身份证]
254         IsIDCard: function (input) {
255             input = input.toUpperCase();
256             //验证身份证号码格式 [一代身份证号码为15位的数字;二代身份证号码为18位的数字或17位的数字加字母X]
257             if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/i.test(input))) {
258                 return false;
259             }
260             //验证省份
261             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: '国外' };
262             if (arrCity[parseInt(input.substr(0, 2))] == null) {
263                 return false;
264             }
265             //验证出生日期
266             var regBirth, birthSplit, birth;
267             var len = input.length;
268             if (len == 15) {
269                 regBirth = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
270                 birthSplit = input.match(regBirth);
271                 birth = new Date('19' + birthSplit[2] + '/' + birthSplit[3] + '/' + birthSplit[4]);
272                 if (!(birth.getYear() == Number(birthSplit[2]) && (birth.getMonth() + 1) == Number(birthSplit[3]) && birth.getDate() == Number(birthSplit[4]))) {
273                     return false;
274                 }
275                 return true;
276             }
277             else if (len == 18) {
278                 regBirth = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/i);
279                 birthSplit = input.match(regBirth);
280                 birth = new Date(birthSplit[2] + '/' + birthSplit[3] + '/' + birthSplit[4]);
281                 if (!(birth.getFullYear() == Number(birthSplit[2]) && (birth.getMonth() + 1) == Number(birthSplit[3]) && birth.getDate() == Number(birthSplit[4]))) {
282                     return false;
283                 }
284                 //验证校验码
285                 var valnum;
286                 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
287                 var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
288                 var nTemp = 0, i;
289                 for (i = 0; i < 17; i++) {
290                     nTemp += input.substr(i, 1) * arrInt[i];
291                 }
292                 valnum = arrCh[nTemp % 11];
293                 if (valnum != input.substr(17, 1)) {
294                     return false;
295                 }
296                 return true;
297             }
298             return false;
299         },
300         //验证经度
301         IsLongitude: function (input) {
302             var regex = /^[-\+]?((1[0-7]\d{1}|0?\d{1,2})\.\d{1,5}|180\.0{1,5})$/;
303             if (input.match(regex)) {
304                 return true;
305             } else {
306                 return false;
307             }
308         },
309         //验证纬度
310         IsLatitude: function (input) {
311             var regex = /^[-\+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/;
312             if (input.match(regex)) {
313                 return true;
314             } else {
315                 return false;
316             }
317         }
318     }
319 }

2018-09-27 10:57:05  更新中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏恰童鞋骚年

数据结构基础温故-6.查找(上):基本查找与树表查找

只要你打开电脑,就会涉及到查找技术。如炒股软件中查股票信息、硬盘文件中找照片、在光盘中搜DVD,甚至玩游戏时在内存中查找攻击力、魅力值等数据修改用来作弊等,都要...

1373
来自专栏ml

位运算的方法,大结

Title:       位操作基础篇之位操作全面总结 Author:     MoreWindows E-mail:      morewindows@126...

6368
来自专栏数据结构与算法

P2580 于是他错误的点名开始了

题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人。 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉...

3117
来自专栏一个会写诗的程序员的博客

禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming禅与 JavaScript 编程艺术

Zen and The Art of JavaScript Programming

1241
来自专栏五分钟学算法

LeeCode题目图解

There is an English version of README here. just click it!

1662
来自专栏LhWorld哥陪你聊算法

Hadoop源码篇--Reduce篇

Reduce文件会从Mapper任务中拉取很多小文件,小文件内部有序,但是整体是没序的,Reduce会合并小文件,然后套个归并算法,变成一个整体有序的文件。

2681
来自专栏码匠的流水账

聊聊eureka client的fetch-remote-regions-registry属性

本文主要研究一下eureka client的fetch-remote-regions-registry属性

1581
来自专栏菩提树下的杨过

无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(2)插入记录

-- ======================================== -- Author:  <杨俊明,jimmy.yang@cntvs.c...

2029
来自专栏码匠的流水账

聊聊storm TridentTopology的构建

storm-core-1.2.2-sources.jar!/org/apache/storm/trident/TridentTopology.java

1893
来自专栏Jerry的SAP技术分享

使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据

所谓图片元数据,就是除了我们肉眼看到的图片内容外,隐藏在这些内容背后的一些技术数据。

1594

扫码关注云+社区

领取腾讯云代金券