Rumah >hujung hadapan web >tutorial js >JS正则表达式详解
本文主要和大家分享JS正则表达式详解,主要以文字和代码的的方式和大家分享,希望能帮助到大家。
一、正則表達式應用
“^\d+$” //非负整数(正整数 + 0) “^[0-9][1-9][0-9] ” //非正整数(负整数 + 0) “^-[0-9][1-9][0-9] ” //整数 “^\d+(.\d+)?$” //非负浮点数(正浮点数 + 0) “^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])) ” //非正浮点数(负浮点数 + 0) “^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))) ” //浮点数 “^[A-Za-z]+ ” //由26个英文字母的大写组成的字符串 “^[a-z]+ ” //由数字和26个英文字母组成的字符串 “^\w+ ” //email地址 “^[a-zA-z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\S)?$” //url /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-((0-2)|(3[0|1]))$/ // 年-月-日 /^((0([1-9]{1}))|(1[1|2]))/((0-2)|(3[0|1]))/(d{2}|d{4}) ” //Emil “(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?” //电话号码 “^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]) //MAC地址的正则表达式 ^[-+]?\d+(.\d+)?$ //值类型正则表达式 “^\d+$” //非负整数(正整数 + 0) “^[0-9][1-9][0-9] ” //非正整数(负整数 + 0) “^-[0-9][1-9][0-9] ” //整数 “^\d+(\.\d+)?$” //非负浮点数(正浮点数 + 0) “^(([0-9]+\.[0-9][1-9][0-9])|([0-9][1-9][0-9]\.[0-9]+)|([0-9][1-9][0-9])) ” //非正浮点数(负浮点数 + 0) “^(-(([0-9]+\.[0-9][1-9][0-9])|([0-9][1-9][0-9]\.[0-9]+)|([0-9][1-9][0-9]))) ” //浮点数 “^[A-Za-z]+ ” //由26个英文字母的大写组成的字符串 “^[a-z]+ ” //由数字和26个英文字母组成的字符串 “^\w+ ” //email地址 “^[a-zA-z]+://(\w+(-\w+))(\.(\w+(-\w+)))(\?\S)?$” //url
二、javascript正则表达式检验
//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } //校验用户姓名:只能输入1-30个以字母开头的字串 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } //校验密码:只能输入6-20个字母、数字、下划线 function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+ /; if (!patrn.exec(s)) return false return true } //校验手机号码:必须以数字开头,除数字外,可含有“-” function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校验邮政编码 function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12} /; if (!patrn.exec(s)) return false return true } //校验搜索关键字 function isSearch(s) { var patrn=/^[^~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^~!@ /; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } /*********************************************************************** * FUNCTION: isBetween * PARAMETERS: val AS any value * lo AS Lower limit to check * hi AS Higher limit to check * CALLS: NOTHING * RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false. ************************************************************************/ function isBetween (val, lo, hi) { if ((val < lo) || (val > hi)) { return(false); } else { return(true); } } /*********************************************************************** * FUNCTION: isDate checks a valid date * PARAMETERS: theStr AS String * CALLS: isBetween, isInt * RETURNS: TRUE if theStr is a valid date otherwise false. ************************************************************************/ function isDate (theStr) { var the1st = theStr.indexOf(‘-‘); var the2nd = theStr.lastIndexOf(‘-‘); if (the1st == the2nd) { return(false); } else { var y = theStr.substring(0,the1st); var m = theStr.substring(the1st+1,the2nd); var d = theStr.substring(the2nd+1,theStr.length); var maxDays = 31; if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { return(false); } else if (y.length < 4) { return(false); } else if (!isBetween (m, 1, 12)) { return(false); } else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; else if (m==2) { if (y % 4 > 0) maxDays = 28; else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; else maxDays = 29; } if (isBetween(d, 1, maxDays) == false) { return(false); } else { return(true); } } } /*********************************************************************** * FUNCTION: isEuDate checks a valid date in British format * PARAMETERS: theStr AS String * CALLS: isBetween, isInt * RETURNS: TRUE if theStr is a valid date otherwise false. ************************************************************************/ function isEuDate (theStr) { if (isBetween(theStr.length, 8, 10) == false) { return(false); } else { var the1st = theStr.indexOf(‘/’); var the2nd = theStr.lastIndexOf(‘/’); if (the1st == the2nd) { return(false); } else { var m = theStr.substring(the1st+1,the2nd); var d = theStr.substring(0,the1st); var y = theStr.substring(the2nd+1,theStr.length); var maxDays = 31; if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { return(false); } else if (y.length < 4) { return(false); } else if (isBetween (m, 1, 12) == false) { return(false); } else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; else if (m==2) { if (y % 4 > 0) maxDays = 28; else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; else maxDays = 29; } if (isBetween(d, 1, maxDays) == false) { return(false); } else { return(true); } } } } /********************************************************************** * FUNCTION: Compare Date! Which is the latest! * PARAMETERS: lessDate,moreDate AS String * CALLS: isDate,isBetween * RETURNS: TRUE if lessDate 参考网址:http://www.jb51.net/article/72044.htm 一、正則表達式應用 “^\d+$” //非负整数(正整数 + 0) “^[0-9][1-9][0-9] ” //非正整数(负整数 + 0) “^-[0-9][1-9][0-9] ” //整数 “^\d+(.\d+)?$” //非负浮点数(正浮点数 + 0) “^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])) ” //非正浮点数(负浮点数 + 0) “^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))) ” //浮点数 “^[A-Za-z]+ ” //由26个英文字母的大写组成的字符串 “^[a-z]+ ” //由数字和26个英文字母组成的字符串 “^\w+ ” //email地址 “^[a-zA-z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\S)?$” //url /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-((0-2)|(3[0|1]))$/ // 年-月-日 /^((0([1-9]{1}))|(1[1|2]))/((0-2)|(3[0|1]))/(d{2}|d{4}) ” //Emil “(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?” //电话号码 “^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]) //MAC地址的正则表达式 ^[-+]?\d+(.\d+)?$ //值类型正则表达式 “^\d+$” //非负整数(正整数 + 0) “^[0-9][1-9][0-9] ” //非正整数(负整数 + 0) “^-[0-9][1-9][0-9] ” //整数 “^\d+(\.\d+)?$” //非负浮点数(正浮点数 + 0) “^(([0-9]+\.[0-9][1-9][0-9])|([0-9][1-9][0-9]\.[0-9]+)|([0-9][1-9][0-9])) ” //非正浮点数(负浮点数 + 0) “^(-(([0-9]+\.[0-9][1-9][0-9])|([0-9][1-9][0-9]\.[0-9]+)|([0-9][1-9][0-9]))) ” //浮点数 “^[A-Za-z]+ ” //由26个英文字母的大写组成的字符串 “^[a-z]+ ” //由数字和26个英文字母组成的字符串 “^\w+ ” //email地址 “^[a-zA-z]+://(\w+(-\w+))(\.(\w+(-\w+)))(\?\S)?$” //url 二、javascript正则表达式检验 //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } //校验用户姓名:只能输入1-30个以字母开头的字串 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } //校验密码:只能输入6-20个字母、数字、下划线 function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } //校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-” function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+ /; if (!patrn.exec(s)) return false return true } //校验手机号码:必须以数字开头,除数字外,可含有“-” function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校验邮政编码 function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12} /; if (!patrn.exec(s)) return false return true } //校验搜索关键字 function isSearch(s) { var patrn=/^[^~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^~!@ /; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } /*********************************************************************** * FUNCTION: isBetween * PARAMETERS: val AS any value * lo AS Lower limit to check * hi AS Higher limit to check * CALLS: NOTHING * RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false. ************************************************************************/ function isBetween (val, lo, hi) { if ((val < lo) || (val > hi)) { return(false); } else { return(true); } } /*********************************************************************** * FUNCTION: isDate checks a valid date * PARAMETERS: theStr AS String * CALLS: isBetween, isInt * RETURNS: TRUE if theStr is a valid date otherwise false. ************************************************************************/ function isDate (theStr) { var the1st = theStr.indexOf(‘-‘); var the2nd = theStr.lastIndexOf(‘-‘); if (the1st == the2nd) { return(false); } else { var y = theStr.substring(0,the1st); var m = theStr.substring(the1st+1,the2nd); var d = theStr.substring(the2nd+1,theStr.length); var maxDays = 31; if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { return(false); } else if (y.length < 4) { return(false); } else if (!isBetween (m, 1, 12)) { return(false); } else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; else if (m==2) { if (y % 4 > 0) maxDays = 28; else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; else maxDays = 29; } if (isBetween(d, 1, maxDays) == false) { return(false); } else { return(true); } } } /*********************************************************************** * FUNCTION: isEuDate checks a valid date in British format * PARAMETERS: theStr AS String * CALLS: isBetween, isInt * RETURNS: TRUE if theStr is a valid date otherwise false. ************************************************************************/ function isEuDate (theStr) { if (isBetween(theStr.length, 8, 10) == false) { return(false); } else { var the1st = theStr.indexOf(‘/’); var the2nd = theStr.lastIndexOf(‘/’); if (the1st == the2nd) { return(false); } else { var m = theStr.substring(the1st+1,the2nd); var d = theStr.substring(0,the1st); var y = theStr.substring(the2nd+1,theStr.length); var maxDays = 31; if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { return(false); } else if (y.length < 4) { return(false); } else if (isBetween (m, 1, 12) == false) { return(false); } else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; else if (m==2) { if (y % 4 > 0) maxDays = 28; else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; else maxDays = 29; } if (isBetween(d, 1, maxDays) == false) { return(false); } else { return(true); } } } } /********************************************************************** * FUNCTION: Compare Date! Which is the latest! * PARAMETERS: lessDate,moreDate AS String * CALLS: isDate,isBetween * RETURNS: TRUE if lessDate
Atas ialah kandungan terperinci JS正则表达式详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!