各种JS验证方法

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

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

 

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 引用 • 1347 回帖
  • JavaScript

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

    710 引用 • 1173 回帖 • 171 关注
  • jQuery

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

    63 引用 • 134 回帖 • 741 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 685 关注
  • 外包

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

    26 引用 • 232 回帖 • 6 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 2 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 443 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 294 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Git

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

    205 引用 • 357 回帖 • 1 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    4 引用 • 55 回帖 • 8 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    82 引用 • 122 回帖 • 621 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 42 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 71 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    40 引用 • 24 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 636 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 174 关注
  • CSS

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

    180 引用 • 447 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 247 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • LeetCode

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

    209 引用 • 72 回帖 • 2 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 513 关注