JavaScript验证库(1.0)
今儿个工作之余,写个这个验证库,以便于除在用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("\"",""");
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
///////
////common2

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("\"",""");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
else160
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、负整数+0179

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
else201

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
else229

230
{231

232
zero=zero.toString();233

234
if(zero=="0")235

236
{237

238
bolzero=true;239

240
}241

242
else243

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
else279

280
{281

282
//正整数+0283

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
else305

306
{307

308
//负整数+0309

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
else341

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、负浮点数+0357

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
else379

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
else407

408
{409

410
zero=zero.toString();411

412
if(zero=="0")413

414
{415

416
bolzero=true;417

418
}419

420
else421

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
else457

458
{459

460
//正浮点数+0461

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
else481

482
{483

484
//负浮点数+0485

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
else515

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
else544
alert("字段格式不对");545
return false;546
}547
else548
{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
else572
alert("字段长度过长");573
return false;574
}575
else576
{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
else600
alert("字段长度过短");601
return false;602
}603
else604
{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
else628
alert("字段长度必须为"+len+"个.");629
return false;630
}631
else632
{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
else657
alert("字段格式必须为数字");658
return false;659
}660
else661
{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
else687
alert("字段格式必须为IP地址形式");688
return false;689
}690
else691
{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);@!!!!112
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
}else82
{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
浙公网安备 33010602011771号