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

以下函数调用方式:   

?
1
2
3
4
function check() {
     var bb = 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="提交" οnclick="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 组成的字符串
     function isalphanumber(str) {
         var result = str.match(/^[a-zA-Z0-9]+$/);
         if (result ==  null )
             return false ;
         return true ;
     }
     /******************************/
     // 判断输入是否是一个数字--(数字包含小数)--
function isnumber(str)
{
     return !isNaN(str);
}
 
 
// 判断输入是否是一个整数
function isint(str)
{
     var result=str.match(/^(-|\+)?\d+$/);
     if (result== null return false ;
     return true ;
}
 
 
// 判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS" || "YYYY/MM/DD HH:MM:SS"
function isdatetime(str)
{
     var result=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
     if (result== null return false ;
     var d=  new Date(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 的日期格式
function isdate(str){
    var result=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if (result== null return false ;
    var d= new Date(result[1], result[3]-1, result[4]);
    return (d.getFullYear()==result[1] && d.getMonth()+1==result[3] && d.getDate()==result[4]);
}
 
 
// 判断输入是否是有效的电子邮件
function isemail(str)
{
     var result=str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
     if (result== null return false ;
     return true ;
}
 
 
// 去除字符串的首尾的空格
function trim(str){
    return str.replace(/(^\s*)|(\s*$)/g,  "" );
}
 
 
// 返回字符串的实际长度, 一个汉字算2个长度
function strlen(str){
    return str.replace(/[^\x00-\xff]/g,  "**" ).length;
}
 
 
//匹配中国邮政编码(6位)
function ispostcode(str)
{
     var result=str.match(/[1-9]\d{5}(?!\d)/);
     if (result== null return false ;
     return true ;
}
//匹配国内电话号码(0511-4405222 或 021-87888822)
function istell(str)
{
     var result=str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
     if (result== null return false ;
     return true ;
}
 
//校验是否为(0-10000)的整数
function isint1(str)
{
     var result=str.match(/^[0-9]$|^([1-9])([0-9]){0,3}$|^10000$/);
     if (result== null return false ;
     return true ;
}
 
 
//匹配腾讯QQ号
function isqq(str)
{
     var result=str.match(/[1-9][0-9]{4,}/);
     if (result== null return false ;
     return true ;
}
 
 
//匹配身份证(15位或18位)
function isidcard(str)
{
     var result=str.match(/\d{15}|\d{18}/);
     if (result== null return false ;
     return true ;
}
//
 
 
//校验文本是否为空
function checknull(field,sval)
{
     if (field.value == "" )
       {
         alert( "请填写" + sval +  "!" );
         field.focus();
         return false ;
       }
       return true ;
}
 
 
//屏蔽输入字符
/***********************
调用方法:   
     在文本框中加上 onkeypress="return checkChar()"
*************************/
function checkChar()
{  
     var keycode = event.keyCode;
     if (!(keycode>=48&&keycode<=57))
     {
         return false ;
     }
}

 

/***************************************************************************************************************************
中国电话号码验证 
匹配形式如: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
function NotNull(str) {
         return (str !=  "" );
     }

//邮件地址验证

?
1
2
3
4
5
6
7
8
function checkEmail(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
function checkIDCard(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
function checkIP(str) {  //IP正则表达式
     IP =  '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)' ;
     IPdot = IP +  '\\.' ;
     isIPaddress =  new RegExp( '^' + IPdot + IPdot + IPdot + IP +  '$' );
     //验证IP,返回结果
     return (isIPaddress.test(str));
}

        //主页(网址)验证

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

            //是否数字

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

            //是否整数

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

            //是否字母

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

            /基本弹出窗口/// 

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function checkElement_selected(item, alert_str) {
         if (item.type ==  "select-one" )
             return checkElement_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
         }
         return checkBoolean(rt, item[0], alert_str);
         return true ;
     }

           // 不为空

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function checkElement_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));
     }
     function checkValue_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
function checkElement_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));
     }
     function checkValue_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
function checkElement_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));
     }
     function checkValue_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
function checkElement_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));
     }
     function checkValue_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
//验证数字
     function checkElement_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));
     }
     function checkValue_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
//验证整数
     function checkElement_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));
     }
     function checkValue_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
function checkElement_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));
     }
     function checkValue_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
function checkElement_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));
     }
     function checkValue_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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值