Fork me on GitHub

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 };

 

 

posted @ 2021-06-29 15:44  Hui_Li  阅读(108)  评论(0编辑  收藏  举报