1. 程式人生 > 其它 >JavaScript常用的正則表示式語法總結

JavaScript常用的正則表示式語法總結

  本篇介紹了一些實際開發中的表單驗證屬性主要包括電話號碼驗證,空格字串驗證,郵箱地址驗證等等

  1.檢查輸入的Email信箱格式是否正確

 1 /*
 2 用途:檢查輸入的Email信箱格式是否正確
 3 輸入:strEmail:字串
 4 返回:如果通過驗證返回true,否則返回false
 5 */
 6 function checkEmail(strEmail) {
 7 
 8     //var emailReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
 9     var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
10 // ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 11 if (emailReg.test(strEmail)) { 12 return true; 13 } 14 else { 15 alert("您輸入的Email地址格式不正確!"); 16 return false; // 阻止表單重複提交 17 } 18 };

  2.校驗ip地址的格式

  

 1 /*
 2 用途:校驗ip地址的格式
 3 輸入:strIP:ip地址
 4 返回:如果通過驗證返回true,否則返回false;
5 */ 6 7 function isIP(strIP) { 8 9 if (isNull(strIP)) { 10 return false; 11 } 12 var re = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正則表示式 13 14 if (re.test(strIP)) { 15 if (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256) {
16 return true; 17 } 18 } 19 return false; 20 };

3.

檢查輸入手機號碼是否正確
 1 /*
 2 
 3 用途:檢查輸入手機號碼是否正確
 4 
 5 輸入:strMobile:字串
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function checkMobile(strMobile) {
12     var regu = /^[1][3][0-9]{9}$/;
13     var res = new RegExp(regu);
14     if (res.test(strMobile)) {
15         return true;
16     }
17     else {
18         return false;
19     }
20 };
21 
22 /*
23 
24 用途:檢查輸入的電話號碼格式是否正確
25 
26 輸入:strPhone:字串
27 
28 返回:如果通過驗證返回true,否則返回false
29 
30 */
31 
32 function checkPhone(strPhone) {
33     var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/; // 帶地域字首
34     var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/; //不帶地域字首
35     var prompt = "您輸入的電話號碼不正確!";
36     if (strPhone.length > 9) {
37         if (phoneRegWithArea.test(strPhone)) {
38             return true;
39         }
40         else {
41             alert(prompt);
42             return false;
43         }
44     }
45     else {
46         if (phoneRegNoArea.test(strPhone)) {
47             return true;
48         }
49         else {
50             alert(prompt);
51             return false;
52         }
53     }
54 };

4.檢查空格

 1 /*
 2 
 3 用途:檢查輸入字串是否為空或者全部都是空格
 4 
 5 輸入:str
 6 
 7 返回:如果全是空返回true,否則返回false
 8 
 9 */
10 function isNull(str) {
11     if (str == "") {
12         return true;
13     }
14     var regu = "^[ ]+$";
15     var re = new RegExp(regu);
16     return re.test(str);
17 };

5.檢查輸入的值型別是否符合整數形式

 1 /*
 2 用途:檢查輸入物件的值是否符合整數格式
 3 輸入:str 輸入的字串
 4 返回:如果通過驗證返回true,否則返回false
 5 */
 6 
 7 function isInteger(str) {
 8     var regu = /^[-]{0,1}[0-9]{1,}$/;
 9     return regu.test(str);
10 };
11 
12 /*
13 
14 用途:檢查輸入字串是否符合正整數格式
15 輸入:s:字串
16 返回:如果通過驗證返回true,否則返回false
17 */
18 
19 function isNumber(s) {
20     var regu = "^[0-9]+$";
21     var re = new RegExp(regu);
22     if (s.search(re) != - 1) {
23         return true;
24     }
25     else {
26         return false;
27     }
28 };

6. 檢查輸入的值是否符合埠號

 1 /*
 2 
 3 用途:檢查輸入字串是否符合正整數格式
 4 輸入:s:字串
 5 返回:如果通過驗證返回true,否則返回false
 6 */
 7 
 8 function isNumber(s) {
 9     var regu = "^[0-9]+$";
10     var re = new RegExp(regu);
11     if (s.search(re) != - 1) {
12         return true;
13     }
14     else {
15         return false;
16     }
17 };
18 /*
19 
20 用途:檢查輸入物件的值是否符合埠號格式
21 
22 輸入:str 輸入的字串
23 
24 返回:如果通過驗證返回true,否則返回false
25 
26 */
27 
28 function isPort(str) {
29     return (isNumber(str) && str < 65536);
30 };

7.

檢查輸入字串是否是帶小數的數字格式,可以是負數
 1 /*
 2 用途:檢查輸入物件的值是否符合整數格式
 3 輸入:str 輸入的字串
 4 返回:如果通過驗證返回true,否則返回false
 5 */
 6 
 7 function isInteger(str) {
 8     var regu = /^[-]{0,1}[0-9]{1,}$/;
 9     return regu.test(str);
10 };
11 
12 /*
13 
14 用途:檢查輸入字串是否是帶小數的數字格式,可以是負數
15 
16 輸入:str:字串
17 
18 返回:如果通過驗證返回true,否則返回false
19 
20 */
21 
22 function isDecimal(str) {
23     if (isInteger(str)) {
24         return true;
25     }
26     var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
27     if (re.test(str)) {
28         if (RegExp.$1 == 0 && RegExp.$2 == 0) {
29             return false;
30         }
31         return true;
32     }
33     else {
34         return false;
35     }
36 
37 };

8.

檢查輸入字串是否只由英文字母和數字和下劃線組成 此類函式常用於判斷使用者名稱是否合法
 1 /*
 2 
 3 用途:檢查輸入字串是否只由漢字、字母、數字組成
 4 
 5 輸入:s:字串
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function isChinaOrNumbOrLett(s) {
12 
13     //判斷是否是漢字、字母、數字組成
14 
15     var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
16     var re = new RegExp(regu);
17     if (re.test(s)) {
18         return true;
19     }
20     else {
21 
22         return false;
23     }
24 };
檢查輸入字串是否只由漢字、字母、數字組成
 1 /*
 2 
 3 用途:檢查輸入字串是否只由英文字母和數字組成
 4 
 5 輸入:s:字串
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function isNumberOrLetter(s) {
12 
13     //判斷是否是數字或字母
14 
15     var regu = "^[0-9a-zA-Z]+$";
16 
17     var re = new RegExp(regu);
18 
19     if (re.test(s)) {
20 
21         return true;
22 
23     }
24 
25     else {
26 
27         return false;
28 
29     }
30 
31 };
檢查輸入字串是否只由英文字母和數字組成
 1 /*
 2 
 3 用途:檢查輸入字串是否只由英文字母和數字和下劃線組成
 4 
 5 輸入:s:字串
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function isNumberOr_Letter(s) {
12     //判斷是否是數字或字母
13     var regu = "^[0-9a-zA-Z\_]+$";
14     var re = new RegExp(regu);
15     if (re.test(s)) {
16         return true;
17     }
18     else {
19         return false;
20     }
21 };
檢查輸入字串是否只由英文字母和數字和下劃線組

9. 判斷日期是否合法也是我們開發中經常遇到的

 1 /*
 2 用途:判斷是否是日期
 3 
 4 輸入:date:日期;fmt:日期格式
 5 
 6 返回:如果通過驗證返回true,否則返回false
 7 
 8 */
 9 
10 function isDate(date, fmt) {
11 
12     if (fmt == null) {
13 
14         fmt = "yyyyMMdd";
15 
16     }
17 
18     var yIndex = fmt.indexOf("yyyy");
19 
20     if (yIndex == - 1) {
21 
22         return false;
23 
24     }
25 
26     var year = date.substring(yIndex, yIndex + 4);
27 
28     var mIndex = fmt.indexOf("MM");
29 
30     if (mIndex == - 1) {
31 
32         return false;
33 
34     }
35 
36     var month = date.substring(mIndex, mIndex + 2);
37 
38     var dIndex = fmt.indexOf("dd");
39 
40     if (dIndex == - 1) {
41 
42         return false;
43 
44     }
45 
46     var day = date.substring(dIndex, dIndex + 2);
47 
48     if (!isNumber(year) || year > "2100" || year < "1900") {
49 
50         return false;
51 
52     }
53 
54     if (!isNumber(month) || month > "12" || month < "01") {
55 
56         return false;
57 
58     }
59 
60     if (day > getMaxDay(year, month) || day < "01") {
61 
62         return false;
63 
64     }
65 
66     return true;
67 
68 };
69 
70 function getMaxDay(year, month) {
71 
72     if (month == 4 || month == 6 || month == 9 || month == 11) {
73 
74         return "30";
75 
76     }
77 
78     if (month == 2) {
79 
80         if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
81 
82             return "29";
83 
84         }
85 
86         else {
87 
88             return "28";
89 
90         }
91 
92         return "31";;
93 
94     }
95 
96 };
判斷是否是日期

10. 檢查某一字串是否包含另一字串,某一字串是否以另一字串開始或者結束

 1 /*
 2 
 3 用途:字元1是否以字串2結束
 4 
 5 輸入:str1:字串;str2:被包含的字串
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function isLastMatch(str1, str2) {
12 
13     var index = str1.lastIndexOf(str2);
14 
15     if (str1.length == index + str2.length) {
16 
17         return true;
18 
19     }
20 
21     return false;
22 
23 };
24 
25 
26 /*
27 
28 用途:字元1是否以字串2開始
29 
30 輸入:str1:字串;str2:被包含的字串
31 
32 返回:如果通過驗證返回true,否則返回false
33 
34 */
35 
36 function isFirstMatch(str1, str2) {
37 
38     var index = str1.indexOf(str2);
39 
40     if (index == 0) {
41 
42         return true;
43 
44     }
45 
46     return false;
47 
48 };
49 
50 
51 
52 /*
53 
54 用途:字元1是包含字串2
55 
56 輸入:str1:字串;str2:被包含的字串
57 
58 返回:如果通過驗證返回true,否則返回false
59 
60 */
61 
62 function isMatch(str1, str2) {
63 
64     var index = str1.indexOf(str2);
65 
66     if (index == - 1) {
67 
68         return false;
69 
70     }
71 
72     return true;
73 
74 };

11.

檢查輸入的起止日期是否正確,規則為兩個日期的格式正確,且結束如期>=起始日期
 1 /*
 2 
 3 用途:檢查輸入的起止日期是否正確,規則為兩個日期的格式正確,且結束如期>=起始日期
 4 
 5 輸入:startDate:起始日期,字串; endDate:結束如期,字串
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function checkTwoDate(startDate, endDate) {
12 
13     if (!isDate(startDate)) {
14 
15         alert("起始日期不正確!");
16 
17         return false;
18 
19     }
20 
21     else if (!isDate(endDate)) {
22 
23         alert("終止日期不正確!");
24 
25         return false;
26 
27     }
28 
29     else if (startDate > endDate) {
30 
31         alert("起始日期不能大於終止日期!");
32 
33         return false;
34 
35     }
36 
37     return true;
38 
39 };

12.

檢查證券程式碼是否正確
 1 /*
 2 
 3 用途:檢查證券程式碼是否正確
 4 
 5 輸入:secCode:證券程式碼
 6 
 7 返回:如果通過驗證返回true,否則返回false
 8 
 9 */
10 
11 function checkSecCode(secCode) {
12 
13     if (secCode.length != 6) {
14 
15         alert("證券程式碼長度應該為6位");
16 
17         return false;
18 
19     }
20 
21     if (!isNumber(secCode)) {
22 
23         alert("證券程式碼只能包含數字");
24 
25         return false;
26 
27     }
28 
29     return true;
30 
31 };

13. 我們常常苦惱字串中包含一些空格,此函式可以去掉字串中的空格

 1 /*
 2 
 3 function:cTrim(sInputString,iType)
 4 
 5 description:字串去空格的函式
 6 
 7 parameters:iType:1=去掉字串左邊的空格;2=去掉字串左邊的空格;0=去掉字串左邊和右邊的空格
 8 
 9 return value:去掉空格的字串
10 
11 */
12 
13 function cTrim(sInputString, iType) {
14 
15     var sTmpStr = ' ';
16 
17     var i = - 1;
18 
19     if (iType == 0 || iType == 1) {
20 
21         while (sTmpStr == ' ') {
22 
23             ++i;
24 
25             sTmpStr = sInputString.substr(i, 1);
26 
27         }
28 
29         sInputString = sInputString.substring(i);
30 
31     }
32 
33     if (iType == 0 || iType == 2) {
34 
35         sTmpStr = ' ';
36 
37         i = sInputString.length;
38 
39         while (sTmpStr == ' ') {
40 
41             --i;
42 
43             sTmpStr = sInputString.substr(i, 1);
44 
45         }
46 
47         sInputString = sInputString.substring(0, i + 1);
48 
49     }
50 
51     return sInputString;
52 
53 };