JS验证正则表达式(大全)

来源:互联网 发布:网络麻将赌博犯罪吗 编辑:程序博客网 时间:2024/04/28 11:32

以下函数调用方式:   

?
1
2
3
4
functioncheck() {
    varbb = document.getElementById("txt_id").value;//txt_id为文本框的ID      
    alert(ismobile(bb));//ismobile 代表以下任何一个函数名称 
}

HTML代码:   

<input type="text" name="textfield" id="txt_id" /><input type="submit" name="Submit" value="提交" onclick="check()" />

JavaScript代码:

?
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
/******************************/
    // 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
    functionisalphanumber(str) {
        varresult = str.match(/^[a-zA-Z0-9]+$/);
        if(result == null)
            returnfalse;
        returntrue;
    }
    /******************************/
    // 判断输入是否是一个数字--(数字包含小数)--
functionisnumber(str)
{
    return!isNaN(str);
}
 
 
// 判断输入是否是一个整数
functionisint(str)
{
    varresult=str.match(/^(-|\+)?\d+$/);
    if(result==nullreturnfalse;
    returntrue;
}
 
 
// 判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS" || "YYYY/MM/DD HH:MM:SS"
functionisdatetime(str)
{
    varresult=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
    if(result==nullreturnfalse;
    vard= newDate(result[1], result[3]-1, result[4], result[5], result[6], result[7]);
    return(d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]);
}
 
 
// 检查是否为 YYYY-MM-DD || YYYY/MM/DD 的日期格式
functionisdate(str){
   varresult=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
   if(result==nullreturnfalse;
   vard=newDate(result[1], result[3]-1, result[4]);
   return(d.getFullYear()==result[1] && d.getMonth()+1==result[3] && d.getDate()==result[4]);
}
 
 
// 判断输入是否是有效的电子邮件
functionisemail(str)
{
    varresult=str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
    if(result==nullreturnfalse;
    returntrue;
}
 
 
// 去除字符串的首尾的空格
functiontrim(str){
   returnstr.replace(/(^\s*)|(\s*$)/g, "");
}
 
 
// 返回字符串的实际长度, 一个汉字算2个长度
functionstrlen(str){
   returnstr.replace(/[^\x00-\xff]/g, "**").length;
}
 
 
//匹配中国邮政编码(6位)
functionispostcode(str)
{
    varresult=str.match(/[1-9]\d{5}(?!\d)/);
    if(result==nullreturnfalse;
    returntrue;
}
//匹配国内电话号码(0511-4405222 或 021-87888822)
functionistell(str)
{
    varresult=str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
    if(result==nullreturnfalse;
    returntrue;
}
 
//校验是否为(0-10000)的整数
functionisint1(str)
{
    varresult=str.match(/^[0-9]$|^([1-9])([0-9]){0,3}$|^10000$/);
    if(result==nullreturnfalse;
    returntrue;
}
 
 
//匹配腾讯QQ号
functionisqq(str)
{
    varresult=str.match(/[1-9][0-9]{4,}/);
    if(result==nullreturnfalse;
    returntrue;
}
 
 
//匹配身份证(15位或18位)
functionisidcard(str)
{
    varresult=str.match(/\d{15}|\d{18}/);
    if(result==nullreturnfalse;
    returntrue;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
//校验文本是否为空
functionchecknull(field,sval)
{
    if(field.value =="")
      {
        alert("请填写"+ sval + "!");
        field.focus();
        returnfalse;
      }
      returntrue;
}
 
 
//屏蔽输入字符
/***********************
调用方法:   
    在文本框中加上 onkeypress="return checkChar()"
*************************/
functioncheckChar()
{  
    varkeycode = event.keyCode;
    if(!(keycode>=48&&keycode<=57))
    {
        returnfalse;
    }
}

 

/***************************************************************************************************************************中国电话号码验证 匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222 正则表达式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"中国邮政编码验证 匹配形式如:215421 正则表达式 "d{6}"电子邮件验证 匹配形式如:justali@justdn.com 正则表达式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"身份证验证 匹配形式如:15位或者18位身份证 正则表达式 "d{18}|d{15}"常用数字验证 正则表达式 "d{n}" n为规定长度 "d{n,m}" n到m的长度范围非法字符验证 匹配非法字符如:< > & / ' | 正则表达式 [^<>&/|'\]+日期验证 匹配形式如:20030718,030718 范围:1900--2099 正则表达式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行匹配HTML标记的正则表达式:< (\S*?)[^>]*>.*?|< .*? />评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力匹配首尾空白字符的正则表达式:^\s*|\s*$评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*评注:表单验证时很实用匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*评注:网上流传的版本功能很有限,上面这个基本可以满足需求匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$评注:表单验证时很实用匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}评注:匹配形式如 0511-4405222 或 021-87888822匹配腾讯QQ号:[1-9][0-9]{4,}评注:腾讯QQ号从10000开始匹配中国邮政编码:[1-9]\d{5}(?!\d)评注:中国邮政编码为6位数字匹配身份证:\d{15}|\d{18}评注:中国的身份证为15位或18位匹配ip地址:\d+\.\d+\.\d+\.\d+评注:提取ip地址时有用提取信息中的ip地址: (\d+)\.(\d+)\.(\d+)\.(\d+)   提取信息中的中国手机号码:(86)*0*13\d{9}   提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}   提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}   提取信息中的中国邮政编码:[1-9]{1}(\d+){5}   提取信息中的中国身份证号码:\d{18}|\d{15}   提取信息中的整数:\d+   提取信息中的浮点数(即小数):(-?\d*)\.?\d+   提取信息中的任何数字 :(-?\d*)(\.\d+)?提取信息中的中文字符串:[\u4e00-\u9fa5]*   提取信息中的双字节字符串 (汉字):[^\x00-\xff]*提取信息中的英文字符串:\w*提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?  提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?匹配特定数字:^[1-9]\d*$    //匹配正整数^-[1-9]\d*$   //匹配负整数^-?[1-9]\d*$   //匹配整数^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:^[A-Za-z]+$  //匹配由26个英文字母组成的字符串^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串^[a-z]+$  //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串评注:最基本也是最常用的一些表达式

////////////////////前4行程序用于保护js代码不被下载
// ////////////////////基本正则表达式/////////////////// 
//非空验证

?
1
2
3
functionNotNull(str) {
        return(str != "");
    }

//邮件地址验证

?
1
2
3
4
5
6
7
8
functioncheckEmail(str) {
        //邮件地址正则表达式
        isEmail1 = /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
        //邮件地址正则表达式
        isEmail2 = /^.*@[^_]*$/;
        //验证邮件地址,返回结果
        return(isEmail1.test(str) && isEmail2.test(str));
    }

 //身份证验证

?
1
2
3
4
5
6
7
8
9
10
functioncheckIDCard(str) {
        //身份证正则表达式(15位)
        isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
        //身份证正则表达式(18位)
 
        isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
        //验证身份证,返回结果
 
        return(isIDCard1.test(str) || isIDCard2.test(str));
    }

        //IP验证

?
1
2
3
4
5
6
7
functioncheckIP(str) { //IP正则表达式
    IP = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
    IPdot = IP + '\\.';
    isIPaddress = newRegExp('^'+ IPdot + IPdot + IPdot + IP + '$');
    //验证IP,返回结果
    return(isIPaddress.test(str));
}

        //主页(网址)验证

?
1
2
3
4
5
6
7
functioncheckHomepage(str) {
    //主页正则表达式 //
    isHomepage = /^\w+([\.\-]\w)*$/;
    isHomepage = /^\w+(\.\w+)+\.\w+$/;
    //验证主页,返回结果
    return(isHomepage.test(str));
}

            //是否数字

?
1
2
3
4
5
6
functionisNum(str) { //
        isNumber = /^([1-9]\d*(\.\d+)?)|(\d+(\.\d+))$/;
        isNumber = /^\d+(\.\d+)?$/;
        //验证并返回结果
        return(isNumber.test(str));
    }

            //是否整数

?
1
2
3
4
5
functionisInt(str) {
        isInteger = /^\d+$/;
        //验证并返回结果
        return(isInteger.test(str));
    }

            //是否字母

?
1
2
3
4
5
functionisChar(str) {
        isCharacter = /^[A-Za-z]+$/;
        //验证并返回结果
        return(isCharacter.test(str));
    }

            /////////////////////基本弹出窗口/////////////////// 

?
1
2
3
4
5
6
7
8
9
10
11
functioncheckBoolean(bv, i, w) {
        if(bv == false) {
            try{
                i.focus();
            catch(e) {
            }
            alert(w);
            returnfalse;
        }
        returntrue
    }

            ////////////////////元素和取值判断//////////////////// // 
            已选择

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
functioncheckElement_selected(item, alert_str) {
        if(item.type == "select-one")
            returncheckElement_NotNull(item, alert_str);
        if(alert_str.length == 0)
            alert_str = item.title + "为必选项!";
        rt = false;
        if(item.length > 0) {
            for(i = 0; i < item.length; i++) {
                rt = rt || item[i].checked;
            }
        else{
            rt = item.checked
        }
        returncheckBoolean(rt, item[0], alert_str);
        returntrue;
    }

           // 不为空

?
1
2
3
4
5
6
7
8
9
10
11
12
13
functioncheckElement_NotNull(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_NotNull(v, a, w, g));
    }
    functioncheckValue_NotNull(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = NotNull(v);
        return(checkBoolean(bv, i, w));
    }


            // 合法邮箱

?
1
2
3
4
5
6
7
8
9
10
11
12
13
functioncheckElement_IsEmail(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsEmail(v, a, w, g));
    }
    functioncheckValue_IsEmail(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = checkEmail(v);
        return(checkBoolean(bv, i, w));
    }

           // 合法身份证

?
1
2
3
4
5
6
7
8
9
10
11
12
13
functioncheckElement_IsIDCard(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsIDCard(v, a, w, g));
    }
    functioncheckValue_IsIDCard(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = checkIDCard(v);
        return(checkBoolean(bv, i, w));
    }

           // 合法IP

?
1
2
3
4
5
6
7
8
9
10
11
12
13
functioncheckElement_IsIP(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsIP(v, a, w, g));
    }
    functioncheckValue_IsIP(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = checkIP(v);
        return(checkBoolean(bv, i, w));
    }

           // 验证数字

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//验证数字
    functioncheckElement_IsNum(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsNum(v, a, w, g));
    }
    functioncheckValue_IsNum(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = isNum(v);
        return(checkBoolean(bv, i, w));
    }

           // 验证整数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//验证整数
    functioncheckElement_IsInt(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsInt(v, a, w, g));
    }
    functioncheckValue_IsInt(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = isInt(v);
        return(checkBoolean(bv, i, w));
    }

           // 验证字母

?
1
2
3
4
5
6
7
8
9
10
11
12
13
functioncheckElement_IsChar(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsChar(v, a, w, g));
    }
    functioncheckValue_IsChar(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = isChar(v);
        return(checkBoolean(bv, i, w));
    }

           //合法主页

?
1
2
3
4
5
6
7
8
9
10
11
12
13
functioncheckElement_IsHomepage(a, alert_str, g) {
        v = a.value;
        w = alert_str;
        if(alert_str.length == 0)
            w = a.title + "不能为空!";
        return(checkValue_IsHomepage(v, a, w, g));
    }
    functioncheckValue_IsHomepage(v, i, w, g) {
        if(g != "NOT_TRIM")
            v = v.replace(/(^\s*)|(\s*$)/g, "");
        bv = checkHomepage(v);
        return(checkBoolean(bv, i, w));
    }


转载自:  http://www.open-open.com/lib/view/open1342188657510.html

 

1 0
原创粉丝点击