前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则表达式验证汇总

正则表达式验证汇总

作者头像
xing.org1^
发布2018-10-10 11:54:36
1.1K0
发布2018-10-10 11:54:36
举报
文章被收录于专栏:前端说吧前端说吧

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

代码语言:javascript
复制
  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  更新中

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档