¡¡¡¡1.1 RegExp¶ÔÏóʵÀýµÄ´´½¨
ÕýÔò±í´ïʽģʽ£º
g£º±íʾȫ¾Öģʽ£¬¼´Ä£Ê½½«±»ÓÃÓÚÕû¸ö×Ö·û´®£¬¶ø·Ç·¢ÏÖµÚÒ»¸öÆ¥ÅäÏîʱÁ¢¼´Í£Ö¹£»
i£º±íʾ²»Çø·Ö´óСд£¬ºöÂÔ´óСд£»
m£º±íʾ¶àÐÐģʽ£»
ËùÓÐÔª×Ö·û¶¼±ØÐëתÒ壬Ԫ×Ö·û£º¡°(¡±¡¢ ¡°)¡±¡¢ ¡°[¡±¡¢ ¡°]¡±¡¢ ¡°{¡±¡¢ ¡°}¡±¡¢ ¡°\¡±¡¢ ¡°^¡±¡¢ ¡°$¡±¡¢ ¡°?¡±¡¢ ¡°*¡±¡¢ ¡°.¡±
´´½¨Ò»¸öÕýÔò±í´ïʽ¿ÉÒÔ£º
var expression1 = /pattern /flags ;
var expression2 = new RegExp("pattern","flags");
var exp1 = /[bc]at/i;
var exp2 = new RegExp("[bc]at","i"); // Óëexp1Êǵȼ۵Ä
1.2 RegExpʵÀýÊôÐÔ
ÿ¸öRegExpʵÀý¶¼¾ßÓÐÒÔÏÂÊôÐÔ£º
global£º²¼¶ûÖµ£¬±íʾÊÇ·ñÉèÖÃÁË g ±êÖ¾£»
ignoreCase£º²¼¶ûÖµ£¬±íʾÊÇ·ñÉèÖÃÁË i ±êÖ¾£»
lastIndex£ºÕýÊý£¬±íʾ¿ªÊ¼ËÑË÷ÏÂÒ»¸öÆ¥ÅäÏîµÄ×Ö·ûλÖ㬴Ó0ËãÆð£»
multiline£º²¼¶ûÖµ£¬±íʾÊÇ·ñÉèÖà m ±êÖ¾£»
source£ºÕýÔò±í´ïʽµÄ×Ö·û´®±íʾ£¬°´ÕÕ×ÖÃæÁ¿ÐÎʽ¶ø·Ç´«Èë¹¹Ô캯ÊýµÄ×Ö·û´®Ä£Ê½·µ»Ø£¬È磺¡°[bc]at¡± £»
1.3 ÕýÔò±í´ïʽȫ²¿·ûºÅ½âÊÍ
×Ö·û
ÃèÊö
\
½«ÏÂÒ»¸ö×Ö·û±ê¼ÇΪһ¸öÌØÊâ×Ö·û¡¢»òÒ»¸öÔÒå×Ö·û¡¢»òÒ»¸ö ÏòºóÒýÓᢻòÒ»¸ö°Ë½øÖÆ×ªÒå·û¡£ÀýÈ磬'n' Æ¥Åä×Ö·û "n"¡£'\n' Æ¥ÅäÒ»¸ö»»Ðзû¡£ÐòÁÐ '\\' Æ¥Åä "\" ¶ø "\(" ÔòÆ¥Åä "("¡£
^
Æ¥ÅäÊäÈë×Ö·û´®µÄ¿ªÊ¼Î»Öá£Èç¹ûÉèÖÃÁË RegExp ¶ÔÏóµÄ Multiline ÊôÐÔ£¬^ ҲƥÅä '\n' »ò '\r' Ö®ºóµÄλÖá£
$
Æ¥ÅäÊäÈë×Ö·û´®µÄ½áÊøÎ»Öá£Èç¹ûÉèÖÃÁËRegExp ¶ÔÏóµÄ Multiline ÊôÐÔ£¬$ ҲƥÅä '\n' »ò '\r' ֮ǰµÄλÖá£
*
Æ¥ÅäÇ°ÃæµÄ×Ó±í´ïʽÁã´Î»ò¶à´Î¡£ÀýÈ磬zo* ÄÜÆ¥Åä "z" ÒÔ¼° "zoo"¡£* µÈ¼ÛÓÚ{0,}¡£
+
Æ¥ÅäÇ°ÃæµÄ×Ó±í´ïʽһ´Î»ò¶à´Î¡£ÀýÈ磬'zo+' ÄÜÆ¥Åä "zo" ÒÔ¼° "zoo"£¬µ«²»ÄÜÆ¥Åä "z"¡£+ µÈ¼ÛÓÚ {1,}¡£
?
Æ¥ÅäÇ°ÃæµÄ×Ó±í´ïʽÁã´Î»òÒ»´Î¡£ÀýÈ磬"do(es)?" ¿ÉÒÔÆ¥Åä "do" »ò "does" ÖеÄ"do" ¡£? µÈ¼ÛÓÚ {0,1}¡£
{n}
n ÊÇÒ»¸ö·Ç¸ºÕûÊý¡£Æ¥ÅäÈ·¶¨µÄ n ´Î¡£ÀýÈ磬'o{2}' ²»ÄÜÆ¥Åä "Bob" ÖÐµÄ 'o'£¬µ«ÊÇÄÜÆ¥Åä "food" ÖеÄÁ½¸ö o¡£
{n,}
n ÊÇÒ»¸ö·Ç¸ºÕûÊý¡£ÖÁÉÙÆ¥Åän ´Î¡£ÀýÈ磬'o{2,}' ²»ÄÜÆ¥Åä "Bob" ÖÐµÄ 'o'£¬µ«ÄÜÆ¥Åä "foooood" ÖеÄËùÓÐ o¡£'o{1,}' µÈ¼ÛÓÚ 'o+'¡£'o{0,}' ÔòµÈ¼ÛÓÚ 'o*'¡£
{n,m}
m ºÍ n ¾ùΪ·Ç¸ºÕûÊý£¬ÆäÖÐn <= m¡£×îÉÙÆ¥Åä n ´ÎÇÒ×î¶àÆ¥Åä m ´Î¡£ÀýÈ磬"o{1,3}" ½«Æ¥Åä "fooooood" ÖеÄǰÈý¸ö o¡£'o{0,1}' µÈ¼ÛÓÚ 'o?'¡£Çë×¢ÒâÔÚ¶ººÅºÍÁ½¸öÊýÖ®¼ä²»ÄÜÓпոñ¡£
?
µ±¸Ã×Ö·û½ô¸úÔÚÈκÎÒ»¸öÆäËûÏÞÖÆ·û (*, +, ?, {n}, {n,}, {n,m}) ºóÃæÊ±£¬Æ¥ÅäģʽÊÇ·Ç̰À·µÄ¡£·Ç̰À·Ä£Ê½¾¡¿ÉÄÜÉÙµÄÆ¥ÅäËùËÑË÷µÄ×Ö·û´®£¬¶øÄ¬ÈϵÄ̰À·Ä£Ê½Ôò¾¡¿ÉÄܶàµÄÆ¥ÅäËùËÑË÷µÄ×Ö·û´®¡£ÀýÈ磬¶ÔÓÚ×Ö·û´® "oooo"£¬'o+?' ½«Æ¥Åäµ¥¸ö "o"£¬¶ø 'o+' ½«Æ¥ÅäËùÓÐ 'o'¡£
.
Æ¥Åä³ý "\n" Ö®ÍâµÄÈκε¥¸ö×Ö·û¡£ÒªÆ¥Åä°üÀ¨ '\n' ÔÚÄÚµÄÈκÎ×Ö·û£¬ÇëʹÓÃÏó '[.\n]' µÄģʽ¡£
(pattern)
Æ¥Åä pattern ²¢»ñÈ¡ÕâһƥÅä¡£Ëù»ñÈ¡µÄÆ¥Åä¿ÉÒÔ´Ó²úÉúµÄ Matches ¼¯ºÏµÃµ½£¬ÔÚVBScript ÖÐʹÓà SubMatches ¼¯ºÏ£¬ÔÚJScript ÖÐÔòʹÓà $0¡$9 ÊôÐÔ¡£ÒªÆ¥ÅäÔ²À¨ºÅ×Ö·û£¬ÇëʹÓà '\(' »ò '\)'¡£
(?:pattern)
Æ¥Åä pattern µ«²»»ñȡƥÅä½á¹û£¬Ò²¾ÍÊÇ˵ÕâÊÇÒ»¸ö·Ç»ñȡƥÅ䣬²»½øÐд洢¹©ÒÔºóʹÓá£ÕâÔÚʹÓà "»ò" ×Ö·û (|) À´×éºÏÒ»¸öģʽµÄ¸÷¸ö²¿·ÖÊǺÜÓÐÓá£ÀýÈ磬 'industr(?:y|ies) ¾ÍÊÇÒ»¸ö±È 'industry|industries' ¸ü¼òÂԵıí´ïʽ¡£
(?=pattern)
ÕýÏòÔ¤²é£¬ÔÚÈÎºÎÆ¥Åä pattern µÄ×Ö·û´®¿ªÊ¼´¦Æ¥Åä²éÕÒ×Ö·û´®¡£ÕâÊÇÒ»¸ö·Ç»ñȡƥÅ䣬Ҳ¾ÍÊÇ˵£¬¸ÃÆ¥Åä²»ÐèÒª»ñÈ¡¹©ÒÔºóʹÓá£ÀýÈ磬'Windows (?=95|98|NT|2000)' ÄÜÆ¥Åä "Windows 2000" ÖÐµÄ "Windows" £¬µ«²»ÄÜÆ¥Åä "Windows 3.1" ÖÐµÄ "Windows"¡£Ô¤²é²»ÏûºÄ×Ö·û£¬Ò²¾ÍÊÇ˵£¬ÔÚÒ»¸öÆ¥Åä·¢Éúºó£¬ÔÚ×îºóÒ»´ÎÆ¥ÅäÖ®ºóÁ¢¼´¿ªÊ¼ÏÂÒ»´ÎÆ¥ÅäµÄËÑË÷£¬¶ø²»ÊÇ´Ó°üº¬Ô¤²éµÄ×Ö·ûÖ®ºó¿ªÊ¼¡£
(?!pattern)
¸ºÏòÔ¤²é£¬ÔÚÈκβ»Æ¥Åä pattern µÄ×Ö·û´®¿ªÊ¼´¦Æ¥Åä²éÕÒ×Ö·û´®¡£ÕâÊÇÒ»¸ö·Ç»ñȡƥÅ䣬Ҳ¾ÍÊÇ˵£¬¸ÃÆ¥Åä²»ÐèÒª»ñÈ¡¹©ÒÔºóʹÓá£ÀýÈç'Windows (?!95|98|NT|2000)' ÄÜÆ¥Åä "Windows 3.1" ÖÐµÄ "Windows"£¬µ«²»ÄÜÆ¥Åä "Windows 2000" ÖÐµÄ "Windows"¡£Ô¤²é²»ÏûºÄ×Ö·û£¬Ò²¾ÍÊÇ˵£¬ÔÚÒ»¸öÆ¥Åä·¢Éúºó£¬ÔÚ×îºóÒ»´ÎÆ¥ÅäÖ®ºóÁ¢¼´¿ªÊ¼ÏÂÒ»´ÎÆ¥ÅäµÄËÑË÷£¬¶ø²»ÊÇ´Ó°üº¬Ô¤²éµÄ×Ö·ûÖ®ºó¿ªÊ¼
x|y
Æ¥Åä x »ò y¡£ÀýÈ磬'z|food' ÄÜÆ¥Åä "z" »ò "food"¡£'(z|f)ood' ÔòÆ¥Åä "zood" »ò "food"¡£
[xyz]
×Ö·û¼¯ºÏ¡£Æ¥ÅäËù°üº¬µÄÈÎÒâÒ»¸ö×Ö·û¡£ÀýÈ磬 '[abc]' ¿ÉÒÔÆ¥Åä "plain" ÖÐµÄ 'a'¡£
[^xyz]
¸ºÖµ×Ö·û¼¯ºÏ¡£Æ¥Åäδ°üº¬µÄÈÎÒâ×Ö·û¡£ÀýÈ磬 '[^abc]' ¿ÉÒÔÆ¥Åä "plain" ÖеÄ'p'¡£
[a-z]
×Ö·û·¶Î§¡£Æ¥ÅäÖ¸¶¨·¶Î§ÄÚµÄÈÎÒâ×Ö·û¡£ÀýÈ磬'[a-z]' ¿ÉÒÔÆ¥Åä 'a' µ½ 'z' ·¶Î§ÄÚµÄÈÎÒâСд×Öĸ×Ö·û¡£
[^a-z]
¸ºÖµ×Ö·û·¶Î§¡£Æ¥ÅäÈκβ»ÔÚÖ¸¶¨·¶Î§ÄÚµÄÈÎÒâ×Ö·û¡£ÀýÈ磬'[^a-z]' ¿ÉÒÔÆ¥ÅäÈκβ»ÔÚ 'a' µ½ 'z' ·¶Î§ÄÚµÄÈÎÒâ×Ö·û¡£
\b
Æ¥ÅäÒ»¸öµ¥´Ê±ß½ç£¬Ò²¾ÍÊÇÖ¸µ¥´ÊºÍ¿Õ¸ñ¼äµÄλÖá£ÀýÈ磬 'er\b' ¿ÉÒÔÆ¥Åä"never" ÖÐµÄ 'er'£¬µ«²»ÄÜÆ¥Åä "verb" ÖÐµÄ 'er'¡£
\B
Æ¥Åä·Çµ¥´Ê±ß½ç¡£'er\B' ÄÜÆ¥Åä "verb" ÖÐµÄ 'er'£¬µ«²»ÄÜÆ¥Åä "never" ÖÐµÄ 'er'¡£
\cx
Æ¥ÅäÓÉ x Ö¸Ã÷µÄ¿ØÖÆ×Ö·û¡£ÀýÈ磬 \cM Æ¥ÅäÒ»¸ö Control-M »ò»Ø³µ·û¡£x µÄÖµ±ØÐëΪ A-Z »ò a-z Ö®Ò»¡£·ñÔò£¬½« c ÊÓΪһ¸öÔÒåµÄ 'c' ×Ö·û¡£
\d
Æ¥ÅäÒ»¸öÊý×Ö×Ö·û¡£µÈ¼ÛÓÚ [0-9]¡£
\D
Æ¥ÅäÒ»¸ö·ÇÊý×Ö×Ö·û¡£µÈ¼ÛÓÚ [^0-9]¡£
\f
Æ¥ÅäÒ»¸ö»»Ò³·û¡£µÈ¼ÛÓÚ \x0c ºÍ \cL¡£
\n
Æ¥ÅäÒ»¸ö»»Ðзû¡£µÈ¼ÛÓÚ \x0a ºÍ \cJ¡£
\r
Æ¥ÅäÒ»¸ö»Ø³µ·û¡£µÈ¼ÛÓÚ \x0d ºÍ \cM¡£
\s
Æ¥ÅäÈκοհ××Ö·û£¬°üÀ¨¿Õ¸ñ¡¢ÖƱí·û¡¢»»Ò³·ûµÈµÈ¡£µÈ¼ÛÓÚ [ \f\n\r\t\v]¡£
\S
Æ¥ÅäÈκηǿհ××Ö·û¡£µÈ¼ÛÓÚ [^ \f\n\r\t\v]¡£
\t
Æ¥ÅäÒ»¸öÖÆ±í·û¡£µÈ¼ÛÓÚ \x09 ºÍ \cI¡£
\v
Æ¥ÅäÒ»¸ö´¹Ö±ÖƱí·û¡£µÈ¼ÛÓÚ \x0b ºÍ \cK¡£
\w
Æ¥Åä°üÀ¨Ï»®ÏßµÄÈκε¥´Ê×Ö·û¡£µÈ¼ÛÓÚ'[A-Za-z0-9_]'¡£
\W
Æ¥ÅäÈκηǵ¥´Ê×Ö·û¡£µÈ¼ÛÓÚ '[^A-Za-z0-9_]'¡£
\xn
Æ¥Åä n£¬ÆäÖÐ n ΪʮÁù½øÖÆ×ªÒåÖµ¡£Ê®Áù½øÖÆ×ªÒåÖµ±ØÐëΪȷ¶¨µÄÁ½¸öÊý×Ö³¤¡£ÀýÈ磬'\x41' Æ¥Åä "A"¡£'\x041' ÔòµÈ¼ÛÓÚ '\x04' & "1"¡£ÕýÔò±í´ïʽÖпÉÒÔʹÓà ASCII ±àÂë¡£.
\num
Æ¥Åä num£¬ÆäÖÐ num ÊÇÒ»¸öÕýÕûÊý¡£¶ÔËù»ñÈ¡µÄÆ¥ÅäµÄÒýÓá£ÀýÈ磬'(.)\1' Æ¥ÅäÁ½¸öÁ¬ÐøµÄÏàͬ×Ö·û¡£
\n
±êʶһ¸ö°Ë½øÖÆ×ªÒåÖµ»òÒ»¸öÏòºóÒýÓá£Èç¹û \n ֮ǰÖÁÉÙ n ¸ö»ñÈ¡µÄ×Ó±í´ïʽ£¬Ôò n ΪÏòºóÒýÓ᣷ñÔò£¬Èç¹û n Ϊ°Ë½øÖÆÊý×Ö (0-7)£¬Ôò n Ϊһ¸ö°Ë½øÖÆ×ªÒåÖµ¡£
\nm
±êʶһ¸ö°Ë½øÖÆ×ªÒåÖµ»òÒ»¸öÏòºóÒýÓá£Èç¹û \nm ֮ǰÖÁÉÙÓÐ nm ¸ö»ñµÃ×Ó±í´ïʽ£¬Ôò nm ΪÏòºóÒýÓá£Èç¹û \nm ֮ǰÖÁÉÙÓÐ n ¸ö»ñÈ¡£¬Ôò n Ϊһ¸öºó¸úÎÄ×Ö m µÄÏòºóÒýÓá£Èç¹ûÇ°ÃæµÄÌõ¼þ¶¼²»Âú×㣬Èô n ºÍ m ¾ùΪ°Ë½øÖÆÊý×Ö (0-7)£¬Ôò \nm ½«Æ¥Åä°Ë½øÖÆ×ªÒåÖµ nm¡£
\nml
Èç¹û n Ϊ°Ë½øÖÆÊý×Ö (0-3)£¬ÇÒ m ºÍ l ¾ùΪ°Ë½øÖÆÊý×Ö (0-7)£¬ÔòÆ¥Åä°Ë½øÖÆ×ªÒåÖµ nml¡£
\un
Æ¥Åä n£¬ÆäÖÐ n ÊÇÒ»¸öÓÃËĸöÊ®Áù½øÖÆÊý×Ö±íʾµÄ Unicode ×Ö·û¡£ÀýÈ磬 \u00A9 Æ¥Åä°æÈ¨·ûºÅ (?)¡£
1.4 RegExpʵÀý·½·¨
1£©exec()
¸Ã·½·¨ÊÇרÃÅΪ²¶»ñ×é¶øÉè¼ÆµÄ¡£exec() ½ÓÊÜÒ»¸ö²ÎÊý£¬¼´ÒªÓ¦ÓÃģʽµÄ×Ö·û´®£¬È»ºó·µ»Ø°üº¬µÚÒ»¸öÆ¥ÅäÏîÐÅÏ¢µÄÊý×飻»òÕßÔÚûÓÐÆ¥ÅäÏîµÄÇé¿öÏ·µ»Ønull¡£·µ»ØµÄÊý×éËäÈ»ÊÇArrayʵÀý£¬µ«ÓÐÁ¬¸ö¶îÍâµÄÊôÐÔ£ºindex ºÍ input¡£ÆäÖÐ index ±íʾƥÅäÏîÔÚ×Ö·û´®ÖеÄλÖ㬶ø input ±íʾӦÓÃÕýÔò±í´ïʽµÄ×Ö·û´®¡£ÔÚÊý×éÖеÚÒ»ÏîÊÇÓëÕû¸öģʽƥÅäµÄ×Ö·û´®£¬ÆäËûÏîÊÇÓëģʽÖв¶»ñ×鯥ÅäµÄ×Ö·û´®£¨Èç¹ûģʽÖÐûÓв¶»ñ×飬Ôò¸ÃÊý×éÖ»°üº¬Ò»Ï¡£
¸´ÖÆ´úÂë
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);
console.log(matches);// 0: "mom and dad and baby", 1: " and dad and baby", 2: " and baby", groups: undefined, index: 0, input: "mom and dad and baby", length: 3
console.log(pattern.lastIndex); // 20
matches = pattern.exec(text);
console.log(matches); //null
console.log(pattern.lastIndex); // 0
text = "vat ,bat, sat, fat";
var pattern1 = /.at/;
var matches = pattern1.exec(text);
console.log(matches.index); //0
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
matches = pattern1.exec(text);
console.log(matches.index); //0
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
var pattern2 = /.at/g;
matches = pattern2.exec(text);
console.log(matches.index); //0
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
matches = pattern2.exec(text);
console.log(matches.index); //5
console.log(matches); //0: "bat", groups: undefined, index: 5, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
matches = pattern2.exec(text);
console.log(matches.index); //10
console.log(matches); //0: "sat", groups: undefined, index: 10, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
¸´ÖÆ´úÂë
exec() ·½·¨£¬¼´Ê¹Ä£Ê½ÉèÖÃÁËÈ«¾Ö±íʾ£¨g£©£¬Ëüÿ´Î·µ»ØÒ²Ö»ÊÇÒ»¸öÆ¥ÅäÏûÓÐÉèÖÃÈ«¾Ö±êÖ¾£¬Í¬Ò»¸ö×Ö·û´®µ÷Óöà´Î exec() ʼÖÕ·µ»ØµÚÒ»¸öÆ¥ÅäÏîµÄÐÅÏ¢¡£¶øÉèÖÃÁËÈ«¾Ö±êÖ¾£¬Ã¿´Îµ÷Óà exec() ¶¼»áÔÚ×Ö·û´®Öлù´¡²éÕÒÐÂÆ¥ÅäÏî¡£
2£©test()
¸Ã·½·¨½ÓÊÜÒ»¸ö×Ö·û´®²ÎÊý£¬ÔÚģʽÓë¸Ä²ÎÊýÆ¥ÅäµÄÇé¿öÏ·µ»Ø true £¬·ñÔò·µ»Ø false¡£ºÜÊÊÓÃÓÚÖ»ÏëÖªµÀÄ¿±ê×Ö·û´®Óë·ñÓëij¸öģʽƥÅ䣬µ«²»ÐíÒªÖªµÀÆäÄÚÈݵÄÇé¿ö¡£
var text = "000-00-000";
var pattern = /\d{3}-\d{2}-\d{3}/;
if(pattern.test(text)){ //true
console.log("the pattern was matched!"); // Ö´ÐÐÓï¾ä
}
1.5 RegExp¶ÔÏóµÄ¾²Ì¬ÊôÐÔ
¾²Ì¬ÊôÐÔÊÇRegExpÕâ¸öÄÚÖöÔÏóµÄ¹ÌÓÐÊôÐÔ¡£·ÃÎÊÕâЩ¾²Ì¬ÊôÐÔ£¬²»ÐèÒª½øÐÐÉùÃ÷ʵÀý»¯£¬¶øÊÇÖ±½Óµ÷Óá£
µ÷Óøñʽ£ºRegExp.attribute
ÏÂÃæËùÓÐÊôÐÔµÄ˵Ã÷£¬¾ÍÒÔ£º
var desc = 'Hello,everyone.My name is gtshen';
reg = /na(.?)/g;
reg.test(desc);
¡¡¡¡¡¡¡¡¡¡¡¡Õâ¶Î´úÂë²âÊÔΪÀý£¬½øÐÐ˵Ã÷£º
¡¡¡¡¡¡¡¡¡¡¡¡- input
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£º·µ»Øµ±Ç°ÒªÆ¥ÅäµÄ×Ö·û´®
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('input:'+RegExp.input) // -> 'Hello,everyone.My name is gtshen'
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÌÃû£ºRegExp.$_;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡×¢Ò⣺opera µÍ°æ±¾²¢²»Ö§³Ö¡£
¡¡¡¡¡¡¡¡¡¡¡¡- lastMatch
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£º×îºóÒ»´ÎÆ¥Åäµ½µÄÆ¥ÅäÏÐèÒª¿ªÆôÐÞÊηû-g¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('lastMatch:'+RegExp.lastMatch) // -> nam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÌÃû£ºRegExp['$&'];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡×¢Ò⣺opera µÍ°æ±¾²¢²»Ö§³Ö¡£
¡¡¡¡¡¡¡¡¡¡¡¡- lastParen
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£º×îºóÒ»´ÎÆ¥ÅäµÄ²¶»ñ×é¡£ÐèÒª¿ªÆôÐÞÊηû-g¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('lastParen:'+RegExp.lastParen) // -> 'm';
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÌÃû£ºRegExp['$+'];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡×¢Ò⣺opera µÍ°æ±¾²¢²»Ö§³Ö¡£
¡¡¡¡¡¡¡¡¡¡¡¡- leftContext
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£ºÒÔµ±Ç°Æ¥Åäµ½µÄ×Ó´®ÎªÉÏÏÂÎÄ£¬·µ»ØÖ®Ç°µÄ×Ó´®¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('leftContext:'+RegExp.leftContext) // -> 'Hello,everyone.My ';
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÌÃû£ºRegExp['$&`'];
¡¡¡¡¡¡¡¡¡¡¡¡- rightContext
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£ºÒÔµ±Ç°Æ¥Åäµ½µÄ×Ó´®ÎªÉÏÏÂÎÄ£¬·µ»ØÖ®ºóµÄ×Ó´®¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('rightContext:'+RegExp.rightContext) // -> 'e is gtshen';
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÌÃû£ºRegExp['$\''];
¡¡¡¡¡¡¡¡¡¡¡¡- multiline
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£ºÊÇ·ñÖ§³Ö¶àÐС£·µ»ØÖµÎªbooleanÖµ£¬true±íʾ֧³Ö£¬false±íʾ²»Ö§³Ö¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('multiline:'+RegExp.multiline);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÌÃû£ºRegExp['$*'];
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡×¢Ò⣺IE ²¢²»Ö§³Ö¡£
¡¡¡¡¡¡¡¡¡¡¡¡- $1 - $9
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¹¦ÄÜ£º·µ»Ø1 - 9¸ö²¶»ñ×éµÄÖµ¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ê¾Àý£º console.log('$1:'+ RegExp.$1) // -> 'm'
¡¡¡¡¡¡¡¡¡¡¡¡* ×¢ÒâµÄÊÇ¡°RegExp¡±Ö¸µÄÊÇ×î½üÒ»´ÎÔÚ³ÌÐòÔËÐÐÖнøÐÐÆ¥Åä²Ù×÷µÄÕýÔòʵÀý¶ÔÏó¡£
2¡¢String ÖеÄÕýÔò
1£©match()
match() ½ÓÊÜÒ»¸öÕýÔò±í´ïʽ×÷Ϊ²ÎÊý¡£µ±ÕýÔò±í´ïʽ²»¾ßÓÐÈ«¾ÖÊôÐÔ g £¬¸Ã·½·¨ºÍ RegExp µÄ exec() ·½·¨Ö´Ðнá¹ûÒ»Ñù£¬ÈçÕýÔòÓÐÈ«¾Ö±êÖ¾ g ʱ£¬·µ»ØÒ»¸ö°üº¬ËùÓÐÆ¥ÅäÏîµÄ´¿Êý×é¡£
¸ñʽ£ºstr.match(pattern)
¹¦ÄÜ£º
¡¡¡¡match ÔÚ¹¦ÄÜÉÏÓëÕýÔò¶ÔÏó×Ô´øµÄ·½·¨execºÜÀàËÆ¡£
¡¡¡¡match ¸ù¾ÝÆ¥Å乿ÔòpatternÆ¥ÅäÖ¸¶¨µÄ×Ö·û´®str£¬Èç¹ûÆ¥Åä³É¹¦Ôò·µ»ØÒ»¸öÊý×é¸ñʽµÄ½á¹ûÓÃÓÚ´æ·ÅÆ¥ÅäÎı¾ÓйصÄÐÅÏ¢£¬Èç¹ûûÓÐÆ¥Åäµ½Ôò·µ»Ønull¡£
¸´ÖÆ´úÂë
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/i;
var matches = text.match(pattern);
console.log(matches);// 0: "mom and dad and baby", 1: " and dad and baby", 2: " and baby", groups: undefined, index: 0, input: "mom and dad and baby", length: 3
console.log(pattern.lastIndex); // 20
var pattern = /mom( and dad( and baby)?)?/gi;
matches = text.match(pattern);
console.log(matches);// ["mom and dad and baby"]
console.log(pattern.lastIndex); // 0
text = "vat ,bat, sat, fat";
pattern = /.at/;
//Óë pattern.exec(text) Ïàͬ
matches = text.match(pattern);
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern.lastIndex); //0
//Èç¹ûmatchµÄÆ¥Å乿Ôò¾ßÓÐÈ«¾ÖgÊôÐÔ£¬ÄÇômatch·µ»ØµÄÆ¥Åä½á¹û£¬±ãÊÇÒ»¸ö°üº¬ËùÓÐÆ¥Åä½á¹ûµÄ´¿Êý×é
pattern = /.at/g;
matches = text.match(pattern);
console.log(matches); //["vat", "bat", "sat", "fat"]
console.log(pattern.lastIndex); //0
¸´ÖÆ´úÂë
2£©search()
¸Ã·½·¨½ÓÊÜÒ»¸öÕýÔò±í´ïʽ»òÕß×Ö·û´®×÷Ϊ²ÎÊý£¬´Ó×Ö·û´®¿ªÍ·Ïòºó²éÕÒ¡£
¸ñʽ£ºstr.search(pattern)£»
¹¦ÄÜ£º¸ù¾øÆ¥Å乿ÔòpatternÔÚ×Ö·û´®ÖмìË÷Ö¸¶¨µÄ½á¹û£¬Èç¹û¼ìË÷µ½Ôò·µ»Ø¸Ã½á¹ûÊ××ÖĸÔÚÔ×Ö·ûÖеÄË÷Òý£¬·ñÔò·µ»Ø-1¡£Æä¹¦ÄÜÀàËÆÓÚindexOf£¬Ö»ÊÇindexOf²¢²»Ö§³ÖÕýÔòÆ¥Åä¡£
¸Ã·½·¨ºöÂÔÈ«¾ÖÐÞÊηûg£¬Ò²²»Ö§³ÖlastIndexÒ²¾ÍÊÇÒâζ×ÅËü²»Äܱ»¶à´Îµ÷Óã¬Ò»µ©¼ìË÷µ½½á¹û£¬±ã»áÍ£Ö¹¼ìË÷¡£
var text = "vat ,bat, sat, fat";
var pattern = /at/;
var pos = text.search(pattern);
console.log(pos); // 1
console.log( text.search("t") ); // 2
3£©replace()
¸ñʽ£ºstr.replace(pattern,given)
¹¦ÄÜ£º¸ù¾ÝÆ¥Å乿ÔòpatternÀ´ÓÃÖ¸¶¨µÄÄÚÈÝgivenÈ¥Ìæ»»str»òÆä²¿·Ö×Ö·û¡£ÆäÖÐpattern¿ÉÒÔÊÇstrÖеIJ¿·Ö×Ö·ûÒ²¿ÉÒÔÊÇÒ»¸öÕýÔò±í´ïʽ¡£
pattern ¿ÉÒÔÊÇ×Ö·û´®£¬Ò²¿ÉÒÔÊÇÕýÔò±í´ïʽ£»givenËù´ú±íÌæ»»µÄÖ¸¶¨ÄÚÈÝ£¬¼È¿ÉÒÔÊÇ×Ö·û´®£¬Ò²¿ÉÒÔÊÇÒ»¸ö»Øµ÷º¯Êý¡£
replace() ·½·¨Ö»»á·µ»ØÔ×Ö·û±»²Ù×÷ºóµÄ¸±±¾£¬²¢²»»á¶ÔÔ×Ö·û´®½øÐи͝¡£
Èç¹û pattern ÊÇ×Ö·û´®£¬ÄÇôֻ»áÌæ»»µÚÒ»¸öÆ¥ÅäµÄ×Ó×Ö·û´®¡£ÒªÏëÌæ»»ËùÓÐÆ¥ÅäµÄ×Ó´®£¬ÐèÒª pattern ÊÇÕýÔò±í´ïʽ£¬ÇÒ´øÈ«¾Ö±êÖ¾ g¡£
¸´ÖÆ´úÂë
var text = "cat ,bat, sat, fat";
var pattern = "at";
var result = text.replace(pattern,"ond");
console.log(result); // "cond ,bat, sat, fat"
pattern = /at/g;
result = text.replace(pattern,"ond");
console.log(result); //"cond ,bond, sond, fond"
var str = 'ÊÀ½çÉÏ×îÒ£Ô¶µÄ¾àÀë ²»ÊÇÉúÓëËÀµÄ¾àÀë ¶øÊÇÎÒ¾ÍÕ¾ÔÚÄãµÄÃæÇ° ÄãÈ´²»ÖªµÀÎÒ°®Äã¡£',
st = ['ËÀ','°®','¾àÀë'],
pattern = '',
alt = '',
str1= "";
for(var i=0;i
pattern = new RegExp(st[i],'g');
for(var j=0;j
}
str1 = str.replace(pattern,alt);
alt = '';
}
console.log(str); //ÊÀ½çÉÏ×îÒ£Ô¶µÄ¾àÀë ²»ÊÇÉúÓëËÀµÄ¾àÀë ¶øÊÇÎÒ¾ÍÕ¾ÔÚÄãµÄÃæÇ° ÄãÈ´²»ÖªµÀÎÒ°®Äã¡£
console.log(str1); //ÊÀ½çÉÏ×îÒ£Ô¶µÄ** ²»ÊÇÉúÓë*µÄ** ¶øÊÇÎÒ¾ÍÕ¾ÔÚÄãµÄÃæÇ° ÄãÈ´²»ÖªµÀÎÒ*Äã¡£
¸´ÖÆ´úÂë
givenÈôÊǻص÷º¯Êý
ÔÚÖ»ÓÐÒ»¸öÆ¥ÅäÏ¼´Ã»Óв¶»ñ×éµÄÇé¿öÏ£¬
Æä¸ñʽΪ£º function(match,index,input){}¡£
Èç¹ûÓжà¸ö²¶»ñ×飬
Æä¸ñʽΪ£º function(match,[$1...$9],index,input){}¡£
match£º ±íʾµ±Ç°Æ¥ÅäµÄ½á¹û
[$1 - $9]£º ´æÔÚ·Ö×éµÄÇé¿öÏ£¬±íʾµ±Ç° 1 - 9 ¸ö·Ö×éµÄÄÚÈÝ¡£
index£º µ±Ç°Æ¥ÅäÄÚÈÝÊ××ÖĸÔÚ×Ö·û´´ÖÐË÷Òý¡£
input £º½øÐÐÆ¥ÅäµÄÔ×Ö·û´´¡£
¸´ÖÆ´úÂë
function htmlEscape(text){
return text.replace(/[<>"&]/g,function(match,index,input){
switch(match){
case "<": return "<";
case ">": return ">";
case "&": return "&";
case "\"": return """;
}
});
}
console.log(htmlEscape("
Hello world!
"));//Hello world!
ngα¾²Ì¬ËµÃ÷
²ÎÊýÃû ÒâÒå
$arg_[parameter] httpÇëÇóÖÐij¸ö²ÎÊýµÄÖµ¡£Àý£º/index.html?size=100,¿ÉÒÔÓÃ$arg_size»ñÈ¡100$binary_remote_addr ¶þ½øÖƸñʽµÄ¿Í»§¶ËµØÖ·¡£$body_bytes_sent ±íʾÔÚÏò¿Í»§¶Ë·¢Ë͵ÄhttpÏìÓ¦ÖУ¬°üÌ岿·ÖµÄ×Ö½ÚÊý$content_length ±íʾÔÚÏò¿Í»§¶ËÇëÇóÍ·²¿ÖеÄContent-Length×Ö¶Î$contenttype ±íʾÔÚÏò¿Í»§¶ËÇëÇóÍ·²¿ÖеÄContent-Type×Ö¶Î$cookie[cookie] ±íʾÔÚ¿Í»§¶ËÇëÇóÍ·²¿ÖеÄcookie×Ö¶Î$document_root ±íʾµ±Ç°ÇëÇóËùʹÓõÄrootÅäÖÃÏîµÄÖµ$uri ±íʾµ±Ç°ÇëÇóURI£¬²»´øÈκβÎÊý$document_uri ͬÉÏ$request_uri ±íʾ¿Í»§¶Ë·¢À´µÄÔʼÇëÇóURI£¬´øÍêÕûµÄ²ÎÊý¡£$uriºÍ$document_uriδ±ØÊÇÓû§µÄÔʼÇëÇó£¬ÔÚÄÚ²¿Öض¨Ïòºó¿ÉÄÜÊÇÖØ¶¨ÏòºóµÄURI£¬¶ø$requesturiÓÀÔ¶²»»á¸Ä±ä£¬Ê¼ÖÕÊǿͻ§¶ËÔʼURI$host ±íʾ¿Í»§¶ËÇëÇóÍ·²¿ÖеÄHost×ֶΡ£Èç¹ûHost×ֶβ»´æÔÚ£¬ÔòÒÔʵ¼Ê´¦ÀíµÄserver£¨ÐéÄâÖ÷»ú£©Ãû³Æ´úÌæ¡£$hostname ±íʾNginxËùÔÚ»úÆ÷µÄÃû³Æ¡£$http[header] ±íʾµ±Ç°httpÇëÇóÖÐÏàӦͷ²¿µÄÖµ¡£$senthttp[header] ±íʾ·µ»Ø¿Í»§¶ËµÄhttpÏìÓ¦ÖÐÏàӦͷ²¿µÄÖµ¡£$is_args ±íʾÇëÇóÖеÄURIÊÇ·ñ´ø²ÎÊý£¬Èç¹û´ø²ÎÊý£¬$is_argeֵΪ£¿£¬·ñÔòΪ¿Õ×Ö·û´®$limit_rate ±íʾµ±Ç°Á¬½ÓµÄÏÞËÙÊǶàÉÙ£¬0±íʾÎÞÏÞËÙ$nginx_version NginxµÄ°æ±¾ºÅ$query_string ÇëÇóURIÖеIJÎÊý£¬Óë$argsÏàͬ£¬$query_stringÊÇÖ»¶ÁµÄ²»»á¸Ä±ä$remote_addr ±íʾ¿Í»§¶ËµØÖ·$remote_port ±íʾ¿Í»§¶Ë¶Ë¿Ú$remote_user ±íʾʹÓÃAuth Basic Moduleʱ¶¨ÒåµÄÓû§Ãû$request_filename ±íʾÓû§ÇëÇóÖÐURI¾¹ýroot»òaliasת»»ºóµÄÎļþ·¾¶$request_body ±íʾhttpÇëÇóÖеİüÌ壬¸Ã²ÎÊýÖ»ÔÚproxy_pass»òfastcgi_passÖÐÓÐÒâÒå$request_body_file ±íʾhttpÇëÇóÖеİüÌå´æ´¢µÄÁÙʱÎļþÃû$request_completion µ±ÇëÇóÒѾȫ²¿Íê³Éʱ£¬ÆäֵΪ"ok"£»ÈôûÓÐÍê³É£¬¾ÍÒª·µ»Ø¿Í»§¶Ë£¬ÔòÆäֵΪ¿Õ×Ö·û´®£»»òÕßÔڶϵãÐø´«µÈÇé¿öÏÂʹÓÃHTTP range·ÃÎʵIJ¢²»ÊÇÎļþµÄ×îºóÒ»¿é£¬ÄÇôÆäÖµÒ²ÊÇ¿Õ×Ö·û´®$request_method ±íʾhttpÇëÇóµÄ·½·¨Ãû£¬ÈçGET¡¢PUT¡¢POSTµÈ$scheme ±íʾhttp scheme£¬ÈçÔÚÇëÇónginx.com/Öбíʾhttps$server_addr ±íʾ·þÎñÆ÷µØÖ·$server_name ±íʾ·þÎñÆ÷Ãû³Æ$server_port ±íʾ·þÎñÆ÷¶Ë¿Ú$server_protocol ±íʾ·þÎñÆ÷Ïò¿Í»§¶Ë·¢ËÍÏìÓ¦µÄÐÒ飬ÈçHTTP/1.1»òHTTP/1.0×÷ÕߣºJesonÀÏʦÁ´½Ó£ºhttps://www.imooc.com/article/22217À´Ô´£ºÄ½¿ÎÍø
js ÖеÄÕýÔò±í´ïʽRegExp
https://www.cnblogs.com/zhanglw456/p/10442477.html