各种JS验证方法

本贴最后更新于 4383 天前,其中的信息可能已经事过境迁

昨天突然想起前段时间搜集了一些验证的方法,但是昨天回家太晚了,没时间写,今天写出来跟大家分享一下,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
/**
 js 验证类,各种js正则验证
     1、isNull :检查输入字符串是否为空(包括全空格,"" ,null,和 "undefined") 为空返回true,否则false
     2、checkPhoneNo :验证固定电话号码,首位为零的三位或四位数字加"-",在加后边6,7,8,为数字(电话有可能是六位或八位哦)
     3、checkIdNo : 验证输入的身份证号是否正确
     4、checkBusinessRegisterNo : 检测输入的工商注册号(十四位数字加一位数字或字母X(不区分大小写))
     5、checkEmail :检测输入的邮箱地址
     6、isIP :校验ip地址的格式
     7、IsURL : 校验url的格式
     8、isInteger :检查输入对象的值是否符合整数格式
     9、isMobel :检查手机号码是否符合要求(手机号码验证,验证13系列和150-159(154除外)、180、185、186、187、188、189几种号码,长度11位)
     10、IsPostId :检查邮政编码是否符合要求(6位数字)
     11、isChinaOrNumbOrLett :检查输入字符串是否只有汉字、字母、数字组成
     12、isNumberOrLetter :检查输入字符串是否只由英文字母和数字组成
     13、checkQQ :检查QQ的格式是否正确(5到10位)
     14、checkQuote :检查输入的字符是否具有特殊字符,特殊字符包括字符包括以下字符(可以自行添加,删除)
             "~", "`", "!", "@", "#", "$", "%", "^", "&", "*",
             "{", "}", "[", "]", "(", ")",":", ";", "'", "|", 
             "\\", "<", ">", "?", "/", "<<", ">>", "||", "//",
             "admin", "administrators", "administrator", "管理员", "系统管理员",
             "select", "delete", "update", "insert", "create", 
             "drop", "alter", "trancate"
     15、checkDate :检查日期格式是否正确(2013-03-12)
     16、checkTime : 检查时间格式是否正确 (12:48:22)
     17、checkFullTime :检查全日期时间格式是否正确(2013-03-12 12:48:22)
     18、checkDecimal : 检查输入的一串字符是否为小数
     19、isHas :判断字符串str2中是否包含字符串str1 ,包含返回true 否则返回false
     20、isSame : 判断str1和str2是否一致,一致返回true 否则返回false
*/
function  Validator() {
     /**
     用途:检查输入字符串是否为空(包括全空格,null,和 "undefined")
     输入:str
     返回:
     如果全是空返回true,否则返回false
     */
     this .isNull =  function ( str ){
         if  ( str ==  ""  return  true ;
         if  ( str ==  null  return  true ;
         if  ( str ==  "undefined"  return  true ;
         var  regu =  "^[ ]+$" ;
         var  re =  new  RegExp(regu);
         return  re.test(str);
     }
     /**
     用途:检查输入电话号码是否正确
     输入:
     s:字符串
     返回:
     如果通过验证返回true,否则返回false
     格式:区号-号码
     区号-3、4位 
     号码-6、7、8位
     */
     this .checkPhoneNo =  function ( s ){
         var  regu =/^0[0-9]{2,3}-[0-9]\d{5,7}$/;
         var  re =  new  RegExp(regu);
         if  (re.test(s)){
             return  true ;
         } else {
             return  false ;
         }
     }
     /**
     用途:检查输入身份证号码是否正确
     输入:
     s:字符串
     返回:
     如果通过验证返回true,否则返回false
     * 格式: 15位or18位
     */
     this .checkIdNo =  function  ( s ){
         var  regu15 =/^(\d{8})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])(\d{3})$/;
         var  re15 =  new  RegExp(regu15);
         var  regu18 =/^(\d{6})(18|19|20)(\d{2})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])(\d{3})(\d|[xX])$/;
         var  re18 =  new  RegExp(regu18);
         if  (re15.test(s) || re18.test(s)) {
             return  true ;
         } else {
             return  false ;
         }
     }
     /**
     工商注册号
     *  格式: 15位
     */
     this .checkBusinessRegisterNo =  function  ( s ){
         var  regu =/^(\d{14})(\d|[xX])$/;
         var  re =  new  RegExp(regu);
         if  (re.test(s)) {
             return  true ;
         } else {
             return  false ;
         }
     }
     /**
     用途:检查输入的Email信箱格式是否正确
     输入:
     strEmail:字符串
     返回:
     如果通过验证返回true,否则返回false
     */
     this .checkEmail =  function  (strEmail) {
         var  emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
         if  (emailReg.test(strEmail)) {
             return  true ;
         } else {
             return  false ;
         }
     }
     /**
     用途:校验ip地址的格式
     输入:strIP:ip地址
     返回:如果通过验证返回true,否则返回false;
     */
     this .isIP =  function  (strIP) {
         if  (isNull(strIP))  return  false ;
             var  re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/  //匹配IP地址的正则表达式
         if (re.test(strIP))
         {
             if ( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)  return  true ;
         }
         return  false ;
     }
     /**
     用途:校验url的格式
     输入:urlString:url网址(以http(s)://或ftp://开头)
     返回:如果通过验证返回true,否则返回false;
     */
     this .IsURL =  function  (urlString){
         regExp = /(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/;
         if  (urlString.match(regExp))
             return  true ;
         else 
             return  false ;        
     }
     /**
     用途:检查输入对象的值是否符合整数格式
     输入:str 输入的字符串
     返回:如果通过验证返回true,否则返回false
     */
     this .isInteger =  function  ( str ){
         var  regu = /^[-]{0,1}[0-9]{1,}$/;
         return  regu.test(str);
     }
     /**
     用途:检查手机号码是否符合要求(手机号码验证,验证13系列和150-159(154除外)、180、185、186、187、188、189几种号码,长度11位)
     输入:str 输入的字符串
     返回:如果通过验证返回true,否则返回false
     */
     this .isMobel =  function  (s){     
         var  regu =/^((13\d{9})|(15[0-35-9]\d{8})|(18[05-9]\d{8}))$/;
         var  re =  new  RegExp(regu);
             if (re.test(s)){       
                 return  true ;     
             } else {     
                 return  false ;     
             }     
    
     /**
      * 用途:检查邮政编码是否符合要求(6位数字)
      * 输入:str 输入的字符串
      * 返回:如果通过验证返回true,否则返回false
      */
     this .IsPostId =  function  (str){
         var  reg=/^\d{6}$/;
         return  reg.test(str);
     }
     /**
     用途:检查输入字符串是否只有汉字、字母、数字组成
     输入:
     value:字符串
     返回:
     如果通过验证返回true,否则返回false
     */
     this .isChinaOrNumbOrLett =  function  ( s ){
         //判断是否是汉字、字母、数字组成
         var  regu =  "^[0-9a-zA-Z\u4e00-\u9fa5]+$" ;
         var  re =  new  RegExp(regu);
         if  (re.test(s)) {
             return  true ;
         } else {
             return  false ;
         }
     }
     /**
     用途:检查输入字符串是否只由英文字母和数字组成
     输入:
     s:字符串
     返回:
     如果通过验证返回true,否则返回false
     */
     this .isNumberOrLetter =  function  ( s ){
         //判断是否是数字或字母
         var  regu =  "^[0-9a-zA-Z]+$" ;
         var  re =  new  RegExp(regu);
         if  (re.test(s)) {
             return  true ;
         } else {
             return  false ;
         }
     }
     /**
      * 检查QQ的格式是否正确(5到10位)
      * 输入:str  字符串
      *  返回:true 或 flase; true表示格式正确
      */
     this .checkQQ =  function  (str){
         var  reg=/^\d{5,10}$/;
         return  reg.test(str);
     }
     /**
      * 检查输入的字符是否具有特殊字符
      * 输入:str  字符串
      * 返回:true 或 flase; true表示包含特殊字符
      * 主要用于注册信息的时候验证
      */
     this .checkQuote =  function  (str){
         var  items =  new  Array( "~" "`" "!" "@" "#" "$" "%" "^" "&" "*" "{" "}" "[" "]" "(" ")" , ":" ";" "'" "|" "\\" "<" ">" "?" "/" "<<" ">>" "||" "//" );
         items.push( "admin" "administrators" "administrator" "管理员" "系统管理员" );
         items.push( "select" "delete" "update" "insert" "create" "drop" "alter" "trancate" );
         str = str.toLowerCase();
         for  ( var  i = 0; i < items.length; i++) {
             if  (str.indexOf(items[i]) >= 0) {
                 return  true ;
             }
         }
         return  false ;
     }
     /**
      * 检查日期格式是否正确
      * 输入:str  字符串
      * 返回:true 或 flase; true表示格式正确
      * 注意:此处不能验证中文日期格式
      * 验证短日期(2007-06-05)
      */
     this .checkDate =  function  (str){
         var  value = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
         if  (value ==  null ) {
             return  false ;
         }
         else  {
             var  date =  new  Date(value[1], value[3] - 1, value[4]);
             return  (date.getFullYear() == value[1] && (date.getMonth() + 1) == value[3] && date.getDate() == value[4]);
         }
     }
     /**
      * 检查时间格式是否正确
      * 输入:str  字符串
      * 返回:true 或 flase; true表示格式正确
      * 验证时间(10:57:10)
      */
     this .checkTime =  function  (str){
         var  value = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
         if  (value ==  null ) {
             return  false ;
         }
         else  {
             if  (value[1] > 24 || value[3] > 60 || value[4] > 60) {
                 return  false
             }
             else  {
                 return  true ;
             }
         }
     }
     /**
      * 检查全日期时间格式是否正确
      * 输入:str  字符串
      * 返回:true 或 flase; true表示格式正确
      * (2007-06-05 10:57:10)
      */
     this .checkFullTime =  function  (str){
         var  value = str.match(/^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/);
         if  (value ==  null ) {
             return  false ;
         }
         else  {
             return  true ;
         }
     }
     /**
      * 检查输入的一串字符是否为小数
      * 输入:str  字符串
      * 返回:true 或 flase; true表示为小数
      */
     this .checkDecimal =  function  (str){
         var  regu =  /^-?\d+(\.\d+)$/;
         var  re =  new  RegExp(regu);
         if (re.test(str)){       
             return  true ;     
         } else {     
             return  false ;     
         }   
     }
     /**
     用途:判断字符串str2中是否包含字符串str1
     输入:str1 字符串,str2 字符串
     返回:包含返回true 否则返回false
     */
     this .isHas =  function (str1,str2){
         if  (str2.indexOf(str1) >= 0) {
                 return  true ;
             } else {
                 return  false ;
             }
     }
     /**
     用途:判断字符串str1和字符串str2是否一致
     输入:str1 字符串,str2 字符串
     返回:一致返回true 否则返回false
     */
     this .isSame =  function (str1,str2){
         if (str1==str2){
             return  true
         } else {
             return  false
         }
     }
}
var  Validator =  new  Validator();

  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1282 回帖 • 1 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 736 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 51 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    134 引用 • 1127 回帖 • 110 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 1 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖 • 1 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 5 关注
  • 安全

    安全永远都不是一个小问题。

    199 引用 • 818 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 3 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • Excel
    31 引用 • 28 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 5 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 194 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 246 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • 倾城之链
    23 引用 • 66 回帖 • 165 关注
  • Anytype
    3 引用 • 31 回帖 • 27 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    167 引用 • 408 回帖 • 488 关注
  • 笔记

    好记性不如烂笔头。

    311 引用 • 794 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 709 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    29 引用 • 202 回帖 • 30 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖 • 1 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2389 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 410 关注