Maison > interface Web > js tutoriel > Explication détaillée des expressions régulières JS

Explication détaillée des expressions régulières JS

小云云
Libérer: 2018-03-30 17:32:53
original
1539 Les gens l'ont consulté

本文主要和大家分享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
Copier après la connexion

二、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=/^[^~!@#$%^&*()+=|\\\][\]\{\}:;\&#39;\,.<>/?]{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=/^[^~!@#$%^&*()+=|\\\][\]\{\}:;\&#39;\,.<>/?]{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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal