JavaScript常用的正則表示式語法總結
阿新 • • 發佈:2021-06-29
本篇介紹了一些實際開發中的表單驗證屬性主要包括電話號碼驗證,空格字串驗證,郵箱地址驗證等等
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 };