各种JS验证方法

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

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

 

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 网页增加动态功能。

    713 引用 • 1174 回帖 • 119 关注
  • jQuery

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

    63 引用 • 134 回帖 • 734 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 705 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    87 引用 • 1206 回帖 • 449 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 516 关注
  • 博客

    记录并分享人生的经历。

    272 引用 • 2386 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 424 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 701 关注
  • 架构

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

    140 引用 • 441 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖 • 1 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 685 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    28 引用 • 66 回帖 • 2 关注
  • 锤子科技

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

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

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 436 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 643 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 24 关注
  • JRebel

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

    26 引用 • 78 回帖 • 627 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 3 关注
  • Hadoop

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

    84 引用 • 122 回帖 • 620 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Lute

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

    25 引用 • 191 回帖 • 24 关注
  • Postman

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

    4 引用 • 3 回帖
  • V2Ray
    1 引用 • 15 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 708 关注
  • Android

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

    334 引用 • 323 回帖 • 23 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 711 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 455 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖