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