好久没有更新了,上传一个网站上通用的验证效果的函数吧。
之前觉得在注册表单的时候,当填写表单失去焦点进行验证的效果很酷,自己也经历了很多的版本的改进,不过都是JS的代码,现在感觉已经成形了。所以发到网上让大家PK一下。
1
/*
2
函数名:检验表单的函数
3
作者:xuwen 日期:2007-2-10
4
参数 _obj:验证的对象 type:验证的类型 errmsg:错误的提示信息 flag:焦点的状态
5
表单失去焦点时调用:onblur=checkInput(this,'isUserName','用户名为数字,下划线组成',1)
6
表单提交时调用:f1 = checkInput(frm.UserName,'isUserName','用户名为数字,下划线组成',1)
7
*/
8
function checkInput(_obj,type,errmsg,flag){
9
var reg;
10
var obj = $(_obj.id);
11
var info = $(_obj.id+"Info");
12
switch(type){
13
case 'isEmpty':
14
reg = /^\S+$/;
15
break;
16
case 'isEmail':
17
reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
18
break;
19
case 'isPostCode':
20
reg = /^\d{6}$/;//国内的六位邮编格式
21
break;
22
case 'isTell':
23
reg = /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/; //手机号码或区号-电话;
24
break;
25
case "isUserName":
26
reg = /^\w+$/;//字母开头,允许数字,字母和下划线
27
break;
28
case "isEnglish":
29
reg = /^[a-z]{3,20}$/;
30
break;
31
case "isNumber":
32
reg =/^[1-9]\d*$/;
33
break;
34
case "indexChar":
35
reg=/^[A-Z]$/
36
break;
37
case "isUrl":
38
reg=/^\S+$/;
39
break;
40
}
41
//提交表单或失去焦点进行验证
42
if(flag){
43
if(reg.test(trim(obj.value))==false){
44
info.innerHTML ="<font color='red'>× "+errmsg+"</font>";
45
return false;}
46
else{
47
info.innerHTML ="<font color='green'>√</font>";
48
return true;}
49
}
50
//获得焦点时进行提示
51
else{
52
info.innerHTML ="<font color='blue'>"+errmsg+"</font>";
53
}
54
}
55
function $(_id){
56
return document.getElementById(_id);
57
}
58
//去掉开始和结束的空格
59
function trim(string){ return string.replace(/(^\s*)|(\s*$)/g,"");}

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
