各种JS验证方法

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

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

 

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 等。

    247 引用 • 1348 回帖
  • JavaScript

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

    729 引用 • 1327 回帖
  • jQuery

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

    63 引用 • 134 回帖 • 724 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    153 引用 • 3783 回帖 • 1 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 483 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 550 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 382 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 664 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    286 引用 • 729 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    75 引用 • 1737 回帖 • 3 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 130 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 4 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 4 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 787 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 73 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 477 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • 导航

    各种网址链接、内容导航。

    40 引用 • 173 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖
  • 运维

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

    149 引用 • 257 回帖