今儿个工作之余,写个这个验证库,以便于除在用ASP.NET之外的人的各位同仁,也能很快的编写验证当前表单里需要提交的数据格式.
当然,该验证库只对客户端有效!
调用的共用脚本public.js如下:
如上代码中,部分函数采用了CSDN的JAVASCRIPT通用库.
下面即为调用验证的formcheck函数,你可以把它放在需要调用的页里,也可以单独放置到某一个JS里.
当然,该验证库只对客户端有效!
调用的共用脚本public.js如下:
1
//
//common
2
3 function LTrim(str)
4
5 {
6
7 var whitespace = new String( " /t/n/r " );
8
9 var s = new String(str);
10
11
12
13 if (whitespace.indexOf(s.charAt( 0 )) != - 1 )
14
15 {
16
17 var j = 0 , i = s.length;
18
19 while (j < i && whitespace.indexOf(s.charAt(j)) != - 1 )
20
21 {
22
23 j ++ ;
24
25 }
26
27 s = s.substring(j, i);
28
29 }
30
31 return s;
32
33 }
34
35
36
37 /*
38
39 ==================================================================
40
41 RTrim(string):去除右边的空格
42
43 ==================================================================
44
45 */
46
47 function RTrim(str)
48
49 {
50
51 var whitespace = new String( " /t/n/r " );
52
53 var s = new String(str);
54
55
56
57 if (whitespace.indexOf(s.charAt(s.length - 1 )) != - 1 )
58
59 {
60
61 var i = s.length - 1 ;
62
63 while (i >= 0 && whitespace.indexOf(s.charAt(i)) != - 1 )
64
65 {
66
67 i -- ;
68
69 }
70
71 s = s.substring( 0 , i + 1 );
72
73 }
74
75 return s;
76
77 }
78
79
80
81 /*
82
83 ==================================================================
84
85 Trim(string):去除前后空格
86
87 ==================================================================
88
89 */
90
91 function Trim(str)
92
93 {
94
95 return RTrim(LTrim(str));
96
97 }
98
99
100
101
102
103
104
105 /*
106
107 ================================================================================
108
109 XMLEncode(string):对字符串进行XML编码
110
111 ================================================================================
112
113 */
114
115 function XMLEncode(str)
116
117 {
118
119 str = Trim(str);
120
121 str = str.replace( " & " , " & " );
122
123 str = str.replace( " < " , " < " );
124
125 str = str.replace( " > " , " > " );
126
127 str = str.replace( " ' " , " ' " );
128
129 str = str.replace( " / "" , " & quot; " );
130
131 return str;
132
133 }
134
135
136
137 /*
138
139 ================================================================================
140
141 验证类函数
142
143 ================================================================================
144
145 */
146
147
148
149 function IsEmpty(obj,strMsg)
150
151 {
152 obj=document.getElementsByName(obj).item(0);
153
154 if(Trim(obj.value)== "" )
155
156 {
157 if(null!=strMsg)
158 alert( " [ " +strMsg+ " ]不能为空。 " );
159 else
160 alert( " 字段不能为空 " );
161
162
163 if(obj.disabled==false && obj.readOnly==false)
164 {
165 obj.focus();
166 }
167 return false;
168 }
169 return true;
170 }
171
172
173
174 /*
175
176 IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
177
178 功能:判断是否为整数、正整数、负整数、正整数+0、负整数+0
179
180 */
181
182 function IsInt(objStr,sign,zero)
183
184 {
185
186 var reg;
187
188 var bolzero;
189
190
191
192 if(Trim(objStr)== "" )
193
194 {
195
196 return false;
197
198 }
199
200 else
201
202 {
203
204 objStr=objStr.toString();
205
206 }
207
208
209
210 if((sign==null)||(Trim(sign)== "" ))
211
212 {
213
214 sign= " +- " ;
215
216 }
217
218
219
220 if((zero==null)||(Trim(zero)== "" ))
221
222 {
223
224 bolzero=false;
225
226 }
227
228 else
229
230 {
231
232 zero=zero.toString();
233
234 if(zero== " 0 " )
235
236 {
237
238 bolzero=true;
239
240 }
241
242 else
243
244 {
245
246 alert( " 检查是否包含0参数,只可为(空、 0 ) " );
247
248 }
249
250 }
251
252
253
254 switch(sign)
255
256 {
257
258 case " +- " :
259
260 //整数
261
262 reg=/(^-?|^/+?)/d+$/;
263
264 break;
265
266 case " + " :
267
268 if(!bolzero)
269
270 {
271
272 //正整数
273
274 reg=/^/+?[0-9]*[1-9][0-9]*$/;
275
276 }
277
278 else
279
280 {
281
282 //正整数+0
283
284 //reg=/^/+?/d+$/;
285
286 reg=/^/+?[0-9]*[0-9][0-9]*$/;
287
288 }
289
290 break;
291
292 case " - " :
293
294 if(!bolzero)
295
296 {
297
298 //负整数
299
300 reg=/^-[0-9]*[1-9][0-9]*$/;
301
302 }
303
304 else
305
306 {
307
308 //负整数+0
309
310 //reg=/^-/d+$/;
311
312 reg=/^-[0-9]*[0-9][0-9]*$/;
313
314 }
315
316 break;
317
318 default:
319
320 alert( " 检查符号参数,只可为(空、 + 、 - ) " );
321
322 return false;
323
324 break;
325
326 }
327
328
329
330 var r=objStr.match(reg);
331
332 if(r==null)
333
334 {
335
336 return false;
337
338 }
339
340 else
341
342 {
343
344 return true;
345
346 }
347
348 }
349
350
351
352 /*
353
354 IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
355
356 功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
357
358 */
359
360 function IsFloat(objStr,sign,zero)
361
362 {
363
364 var reg;
365
366 var bolzero;
367
368
369
370 if(Trim(objStr)== "" )
371
372 {
373
374 return false;
375
376 }
377
378 else
379
380 {
381
382 objStr=objStr.toString();
383
384 }
385
386
387
388 if((sign==null)||(Trim(sign)== "" ))
389
390 {
391
392 sign= " +- " ;
393
394 }
395
396
397
398 if((zero==null)||(Trim(zero)== "" ))
399
400 {
401
402 bolzero=false;
403
404 }
405
406 else
407
408 {
409
410 zero=zero.toString();
411
412 if(zero== " 0 " )
413
414 {
415
416 bolzero=true;
417
418 }
419
420 else
421
422 {
423
424 alert( " 检查是否包含0参数,只可为(空、 0 ) " );
425
426 }
427
428 }
429
430
431
432 switch(sign)
433
434 {
435
436 case " +- " :
437
438 //浮点数
439
440 reg=/^((-?|/+?)/d+)(/./d+)?$/;
441
442 break;
443
444 case " + " :
445
446 if(!bolzero)
447
448 {
449
450 //正浮点数
451
452 reg=/^/+?(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
453
454 }
455
456 else
457
458 {
459
460 //正浮点数+0
461
462 reg=/^/+?/d+(/./d+)?$/;
463
464 }
465
466 break;
467
468 case " - " :
469
470 if(!bolzero)
471
472 {
473
474 //负浮点数
475
476 reg=/^-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
477
478 }
479
480 else
481
482 {
483
484 //负浮点数+0
485
486 reg=/^((-/d+(/./d+)?)|(0+(/.0+)?))$/;
487
488 }
489
490 break;
491
492 default:
493
494 alert( " 检查符号参数,只可为(空、 + 、 - ) " );
495
496 return false;
497
498 break;
499
500 }
501
502
503
504 var r=objStr.match(reg);
505
506 if(r==null)
507
508 {
509
510 return false;
511
512 }
513
514 else
515
516 {
517
518 return true;
519
520 }
521
522 }
523
524 /* 是否EMAIL 格式,daniel*/
525 function IsEmail(obj,strMsg)
526 {
527 var obj=document.getElementsByName(obj).item(0);
528
529 objStr=obj.value;
530
531 var reg=/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/;
532
533 var r=objStr.match(reg);
534
535 if(r==null)
536 {
537 if(obj.disabled==false && obj.readOnly==false)
538 {
539 obj.focus();
540 }
541 if(null!=strMsg)
542 alert( " [ " +strMsg+ " ]格式不对,必须为EMAIL格式。 " );
543 else
544 alert( " 字段格式不对 " );
545 return false;
546 }
547 else
548 {
549 return true;
550 }
551 }
552
553 /* 是否超过最大长度 daniel*/
554
555 function IsOutMax(obj,len,strMsg)
556 {
557 var obj=document.getElementsByName(obj).item(0);
558
559 objStr=obj.value;
560
561 var r=objStr.length;
562
563 if(r>len)
564 {
565 if(obj.disabled==false && obj.readOnly==false)
566 {
567 obj.focus();
568 }
569 if(null!=strMsg)
570 alert( " [ " +strMsg+ " ]太长了,请精简文字。 " );
571 else
572 alert( " 字段长度过长 " );
573 return false;
574 }
575 else
576 {
577 return true;
578 }
579 }
580
581 /* 是否小于最小长度 daniel*/
582
583 function IsOutMin(obj,len,strMsg)
584 {
585 var obj=document.getElementsByName(obj).item(0);
586
587 objStr=obj.value;
588
589 var r=objStr.length;
590
591 if(r<len)
592 {
593 if(obj.disabled==false && obj.readOnly==false)
594 {
595 obj.focus();
596 }
597 if(null!=strMsg)
598 alert( " [ " +strMsg+ " ]文字太少了,请详细填写。 " );
599 else
600 alert( " 字段长度过短 " );
601 return false;
602 }
603 else
604 {
605 return true;
606 }
607 }
608
609 /* 是否足够长度 daniel*/
610
611 function IsFix(obj,len,strMsg)
612 {
613 var obj=document.getElementsByName(obj).item(0);
614
615 objStr=obj.value;
616
617 var r=objStr.length;
618
619 if(r!=len)
620 {
621 if(obj.disabled==false && obj.readOnly==false)
622 {
623 obj.focus();
624 }
625 if(null!=strMsg)
626 alert( " [ " +strMsg+ " ]文字长度必须为 " + len + " 个。 " );
627 else
628 alert( " 字段长度必须为 " +len+ " 个. " );
629 return false;
630 }
631 else
632 {
633 return true;
634 }
635 }
636
637 /* 是否数字 格式,daniel*/
638 function IsNumeric(obj,strMsg)
639 {
640 var obj=document.getElementsByName(obj).item(0);
641
642 objStr=obj.value;
643
644 var reg=/^/d*$/;
645
646 var r=objStr.match(reg);
647
648 if(r==null)
649 {
650 if(obj.disabled==false && obj.readOnly==false)
651 {
652 obj.focus();
653 }
654 if(null!=strMsg)
655 alert( " [ " +strMsg+ " ]必须为数字格式。 " );
656 else
657 alert( " 字段格式必须为数字 " );
658 return false;
659 }
660 else
661 {
662 return true;
663 }
664 }
665
666
667 /* 是否IP地址 格式,daniel*/
668 function IsIP(obj,strMsg)
669 {
670 var obj=document.getElementsByName(obj).item(0);
671
672 objStr=obj.value;
673
674 var reg=/^/d+/.+/d+/.+/d+/.+/d*$/;
675
676 var r=objStr.match(reg);
677
678 if(r==null)
679 {
680 if(obj.disabled==false && obj.readOnly==false)
681 {
682 obj.focus();
683 }
684 if(null!=strMsg)
685 alert( " [ " +strMsg+ " ]必须为为IP地址形式。 " );
686 else
687 alert( " 字段格式必须为IP地址形式 " );
688 return false;
689 }
690 else
691 {
692 return true;
693 }
694 }
695
696
697
698 ///
2
3 function LTrim(str)
4
5 {
6
7 var whitespace = new String( " /t/n/r " );
8
9 var s = new String(str);
10
11
12
13 if (whitespace.indexOf(s.charAt( 0 )) != - 1 )
14
15 {
16
17 var j = 0 , i = s.length;
18
19 while (j < i && whitespace.indexOf(s.charAt(j)) != - 1 )
20
21 {
22
23 j ++ ;
24
25 }
26
27 s = s.substring(j, i);
28
29 }
30
31 return s;
32
33 }
34
35
36
37 /*
38
39 ==================================================================
40
41 RTrim(string):去除右边的空格
42
43 ==================================================================
44
45 */
46
47 function RTrim(str)
48
49 {
50
51 var whitespace = new String( " /t/n/r " );
52
53 var s = new String(str);
54
55
56
57 if (whitespace.indexOf(s.charAt(s.length - 1 )) != - 1 )
58
59 {
60
61 var i = s.length - 1 ;
62
63 while (i >= 0 && whitespace.indexOf(s.charAt(i)) != - 1 )
64
65 {
66
67 i -- ;
68
69 }
70
71 s = s.substring( 0 , i + 1 );
72
73 }
74
75 return s;
76
77 }
78
79
80
81 /*
82
83 ==================================================================
84
85 Trim(string):去除前后空格
86
87 ==================================================================
88
89 */
90
91 function Trim(str)
92
93 {
94
95 return RTrim(LTrim(str));
96
97 }
98
99
100
101
102
103
104
105 /*
106
107 ================================================================================
108
109 XMLEncode(string):对字符串进行XML编码
110
111 ================================================================================
112
113 */
114
115 function XMLEncode(str)
116
117 {
118
119 str = Trim(str);
120
121 str = str.replace( " & " , " & " );
122
123 str = str.replace( " < " , " < " );
124
125 str = str.replace( " > " , " > " );
126
127 str = str.replace( " ' " , " ' " );
128
129 str = str.replace( " / "" , " & quot; " );
130
131 return str;
132
133 }
134
135
136
137 /*
138
139 ================================================================================
140
141 验证类函数
142
143 ================================================================================
144
145 */
146
147
148
149 function IsEmpty(obj,strMsg)
150
151 {
152 obj=document.getElementsByName(obj).item(0);
153
154 if(Trim(obj.value)== "" )
155
156 {
157 if(null!=strMsg)
158 alert( " [ " +strMsg+ " ]不能为空。 " );
159 else
160 alert( " 字段不能为空 " );
161
162
163 if(obj.disabled==false && obj.readOnly==false)
164 {
165 obj.focus();
166 }
167 return false;
168 }
169 return true;
170 }
171
172
173
174 /*
175
176 IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
177
178 功能:判断是否为整数、正整数、负整数、正整数+0、负整数+0
179
180 */
181
182 function IsInt(objStr,sign,zero)
183
184 {
185
186 var reg;
187
188 var bolzero;
189
190
191
192 if(Trim(objStr)== "" )
193
194 {
195
196 return false;
197
198 }
199
200 else
201
202 {
203
204 objStr=objStr.toString();
205
206 }
207
208
209
210 if((sign==null)||(Trim(sign)== "" ))
211
212 {
213
214 sign= " +- " ;
215
216 }
217
218
219
220 if((zero==null)||(Trim(zero)== "" ))
221
222 {
223
224 bolzero=false;
225
226 }
227
228 else
229
230 {
231
232 zero=zero.toString();
233
234 if(zero== " 0 " )
235
236 {
237
238 bolzero=true;
239
240 }
241
242 else
243
244 {
245
246 alert( " 检查是否包含0参数,只可为(空、 0 ) " );
247
248 }
249
250 }
251
252
253
254 switch(sign)
255
256 {
257
258 case " +- " :
259
260 //整数
261
262 reg=/(^-?|^/+?)/d+$/;
263
264 break;
265
266 case " + " :
267
268 if(!bolzero)
269
270 {
271
272 //正整数
273
274 reg=/^/+?[0-9]*[1-9][0-9]*$/;
275
276 }
277
278 else
279
280 {
281
282 //正整数+0
283
284 //reg=/^/+?/d+$/;
285
286 reg=/^/+?[0-9]*[0-9][0-9]*$/;
287
288 }
289
290 break;
291
292 case " - " :
293
294 if(!bolzero)
295
296 {
297
298 //负整数
299
300 reg=/^-[0-9]*[1-9][0-9]*$/;
301
302 }
303
304 else
305
306 {
307
308 //负整数+0
309
310 //reg=/^-/d+$/;
311
312 reg=/^-[0-9]*[0-9][0-9]*$/;
313
314 }
315
316 break;
317
318 default:
319
320 alert( " 检查符号参数,只可为(空、 + 、 - ) " );
321
322 return false;
323
324 break;
325
326 }
327
328
329
330 var r=objStr.match(reg);
331
332 if(r==null)
333
334 {
335
336 return false;
337
338 }
339
340 else
341
342 {
343
344 return true;
345
346 }
347
348 }
349
350
351
352 /*
353
354 IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
355
356 功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
357
358 */
359
360 function IsFloat(objStr,sign,zero)
361
362 {
363
364 var reg;
365
366 var bolzero;
367
368
369
370 if(Trim(objStr)== "" )
371
372 {
373
374 return false;
375
376 }
377
378 else
379
380 {
381
382 objStr=objStr.toString();
383
384 }
385
386
387
388 if((sign==null)||(Trim(sign)== "" ))
389
390 {
391
392 sign= " +- " ;
393
394 }
395
396
397
398 if((zero==null)||(Trim(zero)== "" ))
399
400 {
401
402 bolzero=false;
403
404 }
405
406 else
407
408 {
409
410 zero=zero.toString();
411
412 if(zero== " 0 " )
413
414 {
415
416 bolzero=true;
417
418 }
419
420 else
421
422 {
423
424 alert( " 检查是否包含0参数,只可为(空、 0 ) " );
425
426 }
427
428 }
429
430
431
432 switch(sign)
433
434 {
435
436 case " +- " :
437
438 //浮点数
439
440 reg=/^((-?|/+?)/d+)(/./d+)?$/;
441
442 break;
443
444 case " + " :
445
446 if(!bolzero)
447
448 {
449
450 //正浮点数
451
452 reg=/^/+?(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
453
454 }
455
456 else
457
458 {
459
460 //正浮点数+0
461
462 reg=/^/+?/d+(/./d+)?$/;
463
464 }
465
466 break;
467
468 case " - " :
469
470 if(!bolzero)
471
472 {
473
474 //负浮点数
475
476 reg=/^-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
477
478 }
479
480 else
481
482 {
483
484 //负浮点数+0
485
486 reg=/^((-/d+(/./d+)?)|(0+(/.0+)?))$/;
487
488 }
489
490 break;
491
492 default:
493
494 alert( " 检查符号参数,只可为(空、 + 、 - ) " );
495
496 return false;
497
498 break;
499
500 }
501
502
503
504 var r=objStr.match(reg);
505
506 if(r==null)
507
508 {
509
510 return false;
511
512 }
513
514 else
515
516 {
517
518 return true;
519
520 }
521
522 }
523
524 /* 是否EMAIL 格式,daniel*/
525 function IsEmail(obj,strMsg)
526 {
527 var obj=document.getElementsByName(obj).item(0);
528
529 objStr=obj.value;
530
531 var reg=/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/;
532
533 var r=objStr.match(reg);
534
535 if(r==null)
536 {
537 if(obj.disabled==false && obj.readOnly==false)
538 {
539 obj.focus();
540 }
541 if(null!=strMsg)
542 alert( " [ " +strMsg+ " ]格式不对,必须为EMAIL格式。 " );
543 else
544 alert( " 字段格式不对 " );
545 return false;
546 }
547 else
548 {
549 return true;
550 }
551 }
552
553 /* 是否超过最大长度 daniel*/
554
555 function IsOutMax(obj,len,strMsg)
556 {
557 var obj=document.getElementsByName(obj).item(0);
558
559 objStr=obj.value;
560
561 var r=objStr.length;
562
563 if(r>len)
564 {
565 if(obj.disabled==false && obj.readOnly==false)
566 {
567 obj.focus();
568 }
569 if(null!=strMsg)
570 alert( " [ " +strMsg+ " ]太长了,请精简文字。 " );
571 else
572 alert( " 字段长度过长 " );
573 return false;
574 }
575 else
576 {
577 return true;
578 }
579 }
580
581 /* 是否小于最小长度 daniel*/
582
583 function IsOutMin(obj,len,strMsg)
584 {
585 var obj=document.getElementsByName(obj).item(0);
586
587 objStr=obj.value;
588
589 var r=objStr.length;
590
591 if(r<len)
592 {
593 if(obj.disabled==false && obj.readOnly==false)
594 {
595 obj.focus();
596 }
597 if(null!=strMsg)
598 alert( " [ " +strMsg+ " ]文字太少了,请详细填写。 " );
599 else
600 alert( " 字段长度过短 " );
601 return false;
602 }
603 else
604 {
605 return true;
606 }
607 }
608
609 /* 是否足够长度 daniel*/
610
611 function IsFix(obj,len,strMsg)
612 {
613 var obj=document.getElementsByName(obj).item(0);
614
615 objStr=obj.value;
616
617 var r=objStr.length;
618
619 if(r!=len)
620 {
621 if(obj.disabled==false && obj.readOnly==false)
622 {
623 obj.focus();
624 }
625 if(null!=strMsg)
626 alert( " [ " +strMsg+ " ]文字长度必须为 " + len + " 个。 " );
627 else
628 alert( " 字段长度必须为 " +len+ " 个. " );
629 return false;
630 }
631 else
632 {
633 return true;
634 }
635 }
636
637 /* 是否数字 格式,daniel*/
638 function IsNumeric(obj,strMsg)
639 {
640 var obj=document.getElementsByName(obj).item(0);
641
642 objStr=obj.value;
643
644 var reg=/^/d*$/;
645
646 var r=objStr.match(reg);
647
648 if(r==null)
649 {
650 if(obj.disabled==false && obj.readOnly==false)
651 {
652 obj.focus();
653 }
654 if(null!=strMsg)
655 alert( " [ " +strMsg+ " ]必须为数字格式。 " );
656 else
657 alert( " 字段格式必须为数字 " );
658 return false;
659 }
660 else
661 {
662 return true;
663 }
664 }
665
666
667 /* 是否IP地址 格式,daniel*/
668 function IsIP(obj,strMsg)
669 {
670 var obj=document.getElementsByName(obj).item(0);
671
672 objStr=obj.value;
673
674 var reg=/^/d+/.+/d+/.+/d+/.+/d*$/;
675
676 var r=objStr.match(reg);
677
678 if(r==null)
679 {
680 if(obj.disabled==false && obj.readOnly==false)
681 {
682 obj.focus();
683 }
684 if(null!=strMsg)
685 alert( " [ " +strMsg+ " ]必须为为IP地址形式。 " );
686 else
687 alert( " 字段格式必须为IP地址形式 " );
688 return false;
689 }
690 else
691 {
692 return true;
693 }
694 }
695
696
697
698 ///
如上代码中,部分函数采用了CSDN的JAVASCRIPT通用库.
下面即为调用验证的formcheck函数,你可以把它放在需要调用的页里,也可以单独放置到某一个JS里.
1
2 function formcheck()
3 {
4 var bReturn = false ;
5 // 需要判断的字段名称
6 /* alert(document.getElementById("fldscope"));
7 alert(typeof(document.getElementById("fldscope")));
8 alert(typeof(document.form1.fldscope));
9
10 alert(document.getElementById("fldscope").value);
11 alert(document.getElementById("fldscope").tagName);@!!!!1
12
13 return false; */
14 // 只针对type=text ,hidden 有效,对于下拉菜单等还有问题
15 var arrKey = new Array( " fldname " , " fldlinkman " ,
16 " fldaddr " , " fldzipcode " , " fldphone " , " fldemail " ,
17 " fldqq " , " fldmsn " , " fldarea " , " fldcity " ,
18 " fldip "
19 );
20 var arrValue = new Object();
21 // arrValue 的格式要求,0:格式(是否可为空,MAIL,数字.最大字符数 最小字符数.),1:提示文字
22 // 类型名称 必须为5个字符,+其他如长度数
23 // xnull 不允许为空,email必须mail格式,minln2最小2字符 ,maxln2最多2字符 numbe数字
24 // fixln5 固定长度5 ipadd IP地址格式
25 // 所有字段的类型,长短等配置
26 arrValue[ " fldname " ] = new Array( " xnull " , " 厂家名称 " );
27 arrValue[ " fldlinkman " ] = new Array( " xnull,minln6 " , " 联系人 " );
28
29 arrValue[ " fldaddr " ] = new Array( " xnull,maxln125 " , " 详细地址 " );
30 arrValue[ " fldzipcode " ] = new Array( " xnull,fixln6,numbe " , " 邮编 " );
31 arrValue[ " fldphone " ] = new Array( " xnull,minln5 " , " 电话号码 " );
32
33 arrValue[ " fldemail " ] = new Array( " xnull,email " , " Email " );
34
35 arrValue[ " fldqq " ] = new Array( " xnull,numbe " , " QQ " );
36 arrValue[ " fldmsn " ] = new Array( " xnull,email " , " MSN " );
37
38 arrValue[ " fldarea " ] = new Array( " xnull " , " 地区 " );
39 arrValue[ " fldcity " ] = new Array( " xnull " , " 所属推荐经销商 " );
40 // arrValue["fldscope"]=new Array("xnull","规模");
41 arrValue[ " fldip " ] = new Array( " xnull,ipadd " , " IP " );
42
43
44 for ( var i = 0 ; i < arrKey.length; i ++ )
45 {
46 if ( null != arrValue[arrKey[i]])
47 {
48 var strType = arrValue[arrKey[i]][ 0 ];
49 if (strType.indexOf( " , " ) > 0 )
50 {
51 var arrType = strType.split( " , " );
52 for ( var j = 0 ;j < arrType.length;j ++ )
53 {
54 switch (arrType[j].substr( 0 , 5 ))
55 {
56 case " xnull " :
57 bReturn = IsEmpty(arrKey[i],arrValue[arrKey[i]][ 1 ]);
58 break ;
59 case " email " :
60 bReturn = IsEmail(arrKey[i],arrValue[arrKey[i]][ 1 ]);
61 break ;
62 case " minln " :
63 bReturn = IsOutMin(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
64 break ;
65 case " numbe " :
66 bReturn = IsNumeric(arrKey[i],arrValue[arrKey[i]][ 1 ]);
67 break ;
68 case " fixln " :
69 bReturn = IsFix(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
70 break ;
71 case " ipadd " :
72 bReturn = IsIP(arrKey[i],arrValue[arrKey[i]][ 1 ]);
73 break ;
74 default :
75
76 break ;
77 }
78 if ( false == bReturn) return false ;
79
80 }
81 } else
82 {
83 switch (strType)
84 {
85 case " xnull " :
86 bReturn = IsEmpty(arrKey[i],arrValue[arrKey[i]][ 1 ]);
87 break ;
88 case " email " :
89 bReturn = IsEmail(arrKey[i],arrValue[arrKey[i]][ 1 ]);
90 break ;
91 case " minln " :
92 bReturn = IsOutMin(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
93 break ;
94 case " numbe " :
95 bReturn = IsNumeric(arrKey[i],arrValue[arrKey[i]][ 1 ]);
96 break ;
97 case " fixln " :
98 bReturn = IsFix(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
99 break ;
100 case " ipadd " :
101 bReturn = IsIP(arrKey[i],arrValue[arrKey[i]][ 1 ]);
102 break ;
103
104 default :
105
106 break ;
107 }
108 }
109 if ( false == bReturn) return false ;
110 }
111
112 }
113
114 return true ;
115 }
116
2 function formcheck()
3 {
4 var bReturn = false ;
5 // 需要判断的字段名称
6 /* alert(document.getElementById("fldscope"));
7 alert(typeof(document.getElementById("fldscope")));
8 alert(typeof(document.form1.fldscope));
9
10 alert(document.getElementById("fldscope").value);
11 alert(document.getElementById("fldscope").tagName);@!!!!1
12
13 return false; */
14 // 只针对type=text ,hidden 有效,对于下拉菜单等还有问题
15 var arrKey = new Array( " fldname " , " fldlinkman " ,
16 " fldaddr " , " fldzipcode " , " fldphone " , " fldemail " ,
17 " fldqq " , " fldmsn " , " fldarea " , " fldcity " ,
18 " fldip "
19 );
20 var arrValue = new Object();
21 // arrValue 的格式要求,0:格式(是否可为空,MAIL,数字.最大字符数 最小字符数.),1:提示文字
22 // 类型名称 必须为5个字符,+其他如长度数
23 // xnull 不允许为空,email必须mail格式,minln2最小2字符 ,maxln2最多2字符 numbe数字
24 // fixln5 固定长度5 ipadd IP地址格式
25 // 所有字段的类型,长短等配置
26 arrValue[ " fldname " ] = new Array( " xnull " , " 厂家名称 " );
27 arrValue[ " fldlinkman " ] = new Array( " xnull,minln6 " , " 联系人 " );
28
29 arrValue[ " fldaddr " ] = new Array( " xnull,maxln125 " , " 详细地址 " );
30 arrValue[ " fldzipcode " ] = new Array( " xnull,fixln6,numbe " , " 邮编 " );
31 arrValue[ " fldphone " ] = new Array( " xnull,minln5 " , " 电话号码 " );
32
33 arrValue[ " fldemail " ] = new Array( " xnull,email " , " Email " );
34
35 arrValue[ " fldqq " ] = new Array( " xnull,numbe " , " QQ " );
36 arrValue[ " fldmsn " ] = new Array( " xnull,email " , " MSN " );
37
38 arrValue[ " fldarea " ] = new Array( " xnull " , " 地区 " );
39 arrValue[ " fldcity " ] = new Array( " xnull " , " 所属推荐经销商 " );
40 // arrValue["fldscope"]=new Array("xnull","规模");
41 arrValue[ " fldip " ] = new Array( " xnull,ipadd " , " IP " );
42
43
44 for ( var i = 0 ; i < arrKey.length; i ++ )
45 {
46 if ( null != arrValue[arrKey[i]])
47 {
48 var strType = arrValue[arrKey[i]][ 0 ];
49 if (strType.indexOf( " , " ) > 0 )
50 {
51 var arrType = strType.split( " , " );
52 for ( var j = 0 ;j < arrType.length;j ++ )
53 {
54 switch (arrType[j].substr( 0 , 5 ))
55 {
56 case " xnull " :
57 bReturn = IsEmpty(arrKey[i],arrValue[arrKey[i]][ 1 ]);
58 break ;
59 case " email " :
60 bReturn = IsEmail(arrKey[i],arrValue[arrKey[i]][ 1 ]);
61 break ;
62 case " minln " :
63 bReturn = IsOutMin(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
64 break ;
65 case " numbe " :
66 bReturn = IsNumeric(arrKey[i],arrValue[arrKey[i]][ 1 ]);
67 break ;
68 case " fixln " :
69 bReturn = IsFix(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
70 break ;
71 case " ipadd " :
72 bReturn = IsIP(arrKey[i],arrValue[arrKey[i]][ 1 ]);
73 break ;
74 default :
75
76 break ;
77 }
78 if ( false == bReturn) return false ;
79
80 }
81 } else
82 {
83 switch (strType)
84 {
85 case " xnull " :
86 bReturn = IsEmpty(arrKey[i],arrValue[arrKey[i]][ 1 ]);
87 break ;
88 case " email " :
89 bReturn = IsEmail(arrKey[i],arrValue[arrKey[i]][ 1 ]);
90 break ;
91 case " minln " :
92 bReturn = IsOutMin(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
93 break ;
94 case " numbe " :
95 bReturn = IsNumeric(arrKey[i],arrValue[arrKey[i]][ 1 ]);
96 break ;
97 case " fixln " :
98 bReturn = IsFix(arrKey[i],arrType[j].substr( 5 ,arrType[j].length - 5 ),arrValue[arrKey[i]][ 1 ]);
99 break ;
100 case " ipadd " :
101 bReturn = IsIP(arrKey[i],arrValue[arrKey[i]][ 1 ]);
102 break ;
103
104 default :
105
106 break ;
107 }
108 }
109 if ( false == bReturn) return false ;
110 }
111
112 }
113
114 return true ;
115 }
116
该调用的函数必须放在 form表单头里.如
<form name="form1" method="post" action="submit.php" onSubmit="return formcheck();">
如此这般,你只需要对 arrKey,arrValue进行配置,即可以完成对各表单字段的验证.
注意 :
该1.0版本的验证库
已知BUG:
1.对表单中的text,hidden类型的inputbox有效,对于其他如下拉框暂时不起作用.
2.IP格式判断不是太准确,需要定位每个.之间的数字必须在3位内.
哪位高手,有好的意见或建议,请与我交流.zxc1017@msn.com