Á¤±Ô½Ä ÆÐÅÏ°ú ÆÐÅÏÀ» Àû¿ëÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»´Â Ç÷¡±×¸¦ Æ÷ÇÔÇÏ´Â °³Ã¼ÀÌ´Ù.

Script regexp=/pattern/[flags];
regexp=new RegExp('pattern',['flags']);
HTML ¾ø´Ù.
Àμö
regexp : (Á¤±Ô½Ä °³Ã¼¸í)

ÇʼöÀûÀÎ ¿ä¼ÒÀ̸ç, Á¤±Ô½Ä ÆÐÅÏÀÌ ÇÒ´çµÇ´Â º¯¼ö À̸§ÀÌ´Ù.

pattern : (ÆÐÅÏ)

ÇʼöÀûÀÎ ¿ä¼ÒÀ̸ç, »ç¿ëÇÒ Á¤±Ô½Ä ÆÐÅÏÀÌ´Ù.
±¸¹® 1À» »ç¿ëÇϸé / ¹®ÀÚ·Î ÆÐÅÏÀ» ±¸ºÐÇÏ°í, ±¸¹® 2¸¦ »ç¿ëÇϸé ÀÎ¿ë ºÎÈ£·Î ÆÐÅÏÀ» ¹­´Â´Ù.

pattern Àμö´Â »ç¿ëÇϱâ Àü¿¡ ³»ºÎ ¼­½ÄÀ¸·Î ÄÄÆÄÀϵȴÙ.
±¸¹® 1ÀÇ °æ¿ì patternÀº ½ºÅ©¸³Æ®°¡ ·ÎµåµÇ¸é ÄÄÆÄÀϵȴÙ.
±¸¹® 2ÀÇ °æ¿ì patternÀº »ç¿ëÇϱâ Á÷Àü¿¡ ÄÄÆÄÀϵǰųª compile ¸Þ¼­µå°¡ È£ÃâµÇ¸é ÄÄÆÄÀϵȴÙ.

flags : (Ç÷¡±×)

¼±ÅÃÀûÀÎ ¿ä¼ÒÀ̸ç, ±¸¹® 2¸¦ »ç¿ëÇϸé ÀÎ¿ë ºÎÈ£·Î Ç÷¡±×¸¦ ¹­´Â´Ù. ¹­¾î¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â Ç÷¡±×´Â ´ÙÀ½°ú °°´Ù.

flag¼³¸í
g ¹ß»ýÇÒ ¸ðµç pattern¿¡ ´ëÇÑ Àü¿ª °Ë»ö
i ´ë/¼Ò¹®ÀÚ ±¸ºÐ ¾ÈÇÔ
m ¿©·¯ ÁÙ °Ë»ö

ÀÌ¹Ì °Ë»öÇÒ ¹®ÀÚ¿­À» ¾Ë°í ÀÖÀ¸¸é ±¸¹® 1À» »ç¿ëÇ϶ó.
°Ë»öÇÒ ¹®ÀÚ¿­ÀÌ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿­Ã³·³ ÀÚÁÖ º¯°æµÇ°Å³ª ¾Ë ¼ö ¾øÀ» °æ¿ì¿¡´Â ±¸¹® 2¸¦ »ç¿ëÇ϶ó.

Ư±â

Regular Expression °³Ã¼¸¦ Àü¿ª RegExp °³Ã¼¿Í È¥µ¿ÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
¹ßÀ½Àº °°Áö¸¸ ¼­·Î ±¸ºÐµÇ°í º°°³ÀÌ´Ù.

Regular Expression °³Ã¼ÀÇ ¼Ó¼ºÀº ±× Regular Expression °³Ã¼¿¡ ÀÏÄ¡ÇÏ´Â Á¤º¸¸¸ Æ÷ÇÔÇÏÁö¸¸
Àü¿ª RegExp °³Ã¼ÀÇ ¼Ó¼ºÀº ÀÏÄ¡ÇÏ´Â °ÍÀÌ ÀÖÀ» ¶§¸¶´Ù ²÷ÀÓ¾øÀÌ ¾÷µ¥ÀÌÆ®µÇ´Â Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.

Regular Expression °³Ã¼´Â ¹®ÀÚ°¡ È¥ÇÕµÈ ¹®ÀÚ¿­À» °Ë»öÇÒ ¶§ »ç¿ëµÇ´Â ÆÐÅÏÀ» ÀúÀåÇÑ´Ù. Regular Expression °³Ã¼°¡ ¸¸µé¾îÁø ÈÄ, ±× °³Ã¼´Â ¹®ÀÚ¿­ ¸Þ¼­µå·Î Àü´ÞµÇ°Å³ª ¹®ÀÚ¿­ÀÌ Á¤±Ô½Ä ¸Þ¼­µå Áß Çϳª·Î Àü´ÞµÈ´Ù. °¡Àå ÃÖ±Ù¿¡ °Ë»öÇÑ Á¤º¸´Â Àü¿ª RegExp °³Ã¼¿¡ ÀúÀåµÈ´Ù.

°¢ À©µµ¿ì´Â Javascript ¼öÇà½Ã È®½ÇÈ÷ ´Ù¸¥ Åë·Î(thread)¸¦ »ç¿ëÇϱâ À§ÇÏ¿©, °¢°¢ º°µµÀÇ RegExp °³Ã¼¸¦ °®°í ÀÖÀ¸¹Ç·Î ´Ù¸¥ RegExp °³Ã¼ÀÇ °ªÀ» µ¤¾î ¾º¿ìÁö ¾Ê´Â´Ù.



¼³¸íÀ» À§ÇÑ ¿¹Á¦

<SCRIPT>
var str, myReg; // º¯¼ö¸¦ ¼±¾ð
var myStr='Spring is comming.'; // °Ë»öÇÒ ¹®ÀÚ¿­À» ¸¸µë
str='myStr='+myStr+'<BR>'; // °Ë»öÇÒ ¹®ÀÚ¿­À» Ãâ·Âº¯¼ö¿¡ ÇÒ´ç
myReg=new RegExp('COM','i'); // Á¤±Ô½Ä °³Ã¼¸¦ ¸¸µç´Ù.
str+='myReg='+myReg+'<BR>'; // Á¤±Ô½Ä °³Ã¼¸¦ Ãâ·Âº¯¼ö¿¡ °áÇÕ
str+='myStr.match(myReg)='+myStr.match(myReg).; // ¹®ÀÚ¿­ myStr¿¡¼­ ÀÏÄ¡ÇÏ´Â ºÎºÐÀ» ã´Â´Ù.
document.write(str); // ¹®ÀÚ¿­ Ãâ·Â
</SCRIPT>

¿¹Á¦$1, ..., $9 ¼Ó¼º : ¢¡ µéÀº Á¤±Ô½ÄÀÇ ºÎºÐ ¹®ÀÚ¿­¸¦ ¹ÝȯÇÑ´Ù.
$ ¼Ó¼º : index ¼Ó¼º Âü°í.
$_ ¼Ó¼º : input ¼Ó¼º Âü°í.
$* ¼Ó¼º : multiline ¼Ó¼º Âü°í.
$& ¼Ó¼º : lastMatch ¼Ó¼º Âü°í.
$+ ¼Ó¼º : lastParen ¼Ó¼º Âü°í.
$` ¼Ó¼º : leftContext ¼Ó¼º Âü°í.
$' ¼Ó¼º : rightContext ¼Ó¼º Âü°í.
¿¹Á¦constructor ¼Ó¼º IE4 NS4
¢¡ RegExp °³Ã¼ÀÇ prototypeÀ» »ý¼ºÇÏ´Â ±â´ÉÇÔ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. Object.constructor ¼Ó¼ºÀ» Âü°íÇ϶ó.
¹®¹ý: RegExp.constructor
ÄÚµå: myStr='25/12/2003';myReg=new RegExp('12','g');document.write(myReg.constructor(myStr)) °á°ú:
ÄÚµå: myStr='my RegExp Test';myReg=new RegExp('exp','gim');document.write(myReg.constructor(myStr)) °á°ú:
¿¹Á¦global ¼Ó¼º IE4 NS4
¢¡ Àü¿ªÀûÀ¸·Î ÀÏÄ¡¸¦ Á¡°ËÇϱâ À§ÇÑ 'g' flag°¡ »ç¿ëµÇ¾ú´ÂÁö¸¦ ÂüÁ¶ÇÑ´Ù. 'g' flag°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¸é ÀÌ °ªÀº trueÀÌ°í ¾Æ´Ï¸é falseÀÌ´Ù. Àбâ Àü¿ëÀ̹ǷΠcompile ¸Þ¼­µå¿¡¼­ È£ÃâÇÏ¸é °æ°í¸¦ ¹ß»ý½ÃŲ´Ù.
¹®¹ý: regObj.global
ÄÚµå: myStr='25/12/2003';myReg=new RegExp('12','g');document.write(myReg.global) °á°ú:
¿¹Á¦ignoreCase ¼Ó¼º IE5 NS4
¢¡ ´ë¼Ò¹®ÀÚ ±¸º°À» ÇÏÁö ¾ÊÀ» °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â 'i' flag°¡ »ç¿ëµÇ¾ú´ÂÁö¸¦ ÂüÁ¶ÇÑ´Ù. 'i' flag°¡ ¼³Á¤µÇ¾î ÀÖÀ¸¸é ÀÌ °ªÀº trueÀÌ°í ¾Æ´Ï¸é falseÀÌ´Ù. Àбâ Àü¿ëÀ̹ǷΠcompile ¸Þ¼­µå¿¡¼­ È£ÃâÇÏ¸é °æ°í¸¦ ¹ß»ý½ÃŲ´Ù.
¹®¹ý: regObj.ignoreCase
ÄÚµå: myStr='aBcDeF';myReg=new RegExp('cd','gi');document.write(myReg.ignoreCase) °á°ú:
¿¹Á¦index ¼Ó¼º IE4 NS4
¢¡ Á¤±Ô½ÄÀÇ ¹®ÀÚ¿­ ÀÏÄ¡ index(¹®ÀÚ¿­ ¹è¿­»óÀÇ À§Ä¡ ¹øÈ£)¸¦ ¹ÝȯÇϰųª ¼³Á¤ÇÑ´Ù.
¹®¹ý: RegExp.input=newindex]
ÄÚµå: myReg=/cd/g;str='abcdef';str.search(myReg);document.write(RegExp.index) °á°ú:
¿¹Á¦input ¼Ó¼º (=$_ ¼Ó¼º) IE4 NS4
¢¡ Á¤±Ô½ÄÀÇ ¹®ÀÚ¿­ ÀÏÄ¡¸¦ ¹ÝȯÇϰųª ÁöÁ¤ÇÑ´Ù.
¹®¹ý: RegExp.input=newInput]
ÄÚµå: myReg.input='my Test';document.write(myReg.input) °á°ú:
¿¹Á¦lastIndex ¼Ó¼º IE4 NS4
¢¡ Àü¿ª °ËÁ¤À» À§ÇÑ Á¤±Ô½Ä ÆÐÅÏÀÇ 'g' flag°¡ ÁöÁ¤µÈ °æ¿ì¿¡ ÇÑÇÏ¿© ÀÏÄ¡ÇÏ´Â ¹®ÀÚ¿­ÀÇ ¸¶Áö¸· À妽º(index)ÀÇ Á¤¼ö¸¦ ¹ÝȯÇÑ´Ù.
¹®¹ý: regObj.lastIndex
ÄÚµå: myReg=new RegExp('12','gim');myStr='011200';document.write(myStr+' '+myReg+' '+myReg.exec(myStr).lastIndex)
°á°ú:
¿¹Á¦lastMatch ¼Ó¼º -$& ¼Ó¼º) IE5.5 NS4
¢¡ ÃÖÁ¾ ÀÏÄ¡ÇÑ ¹®ÀÚµéÀ» ¹ÝȯÇÑ´Ù. ÀÌ ¼Ó¼ºÀº °íÁ¤(satic)À̹ǷΠÇ×»óRegExp.lastMatch¸¦ »ç¿ëÇÑ´Ù.
¹®¹ý: RegExp.lastMatch
ÄÚµå: myReg=new RegExp('20','gim');myStr='102030';myReg.exec(myStr);document.write(myStr+' '+myReg+' '+RegExp.lastMatch)
°á°ú:
¿¹Á¦lastParen¼Ó¼º (=$+ ¼Ó¼º) IE5.5 NS4
¢¡ ¸¶Áö¸· ÀÏÄ¡ÀÇ °ýÈ£¼ÓÀÇ ºÎºÐ ¹®ÀÚ¿­À» ¹ÝȯÇÑ´Ù. °íÁ¤(satic)À̹ǷΠÇ×»óRegExp.lastParen¸¦ »ç¿ëÇÑ´Ù.
¹®¹ý: RegExp.lastParen
ÄÚµå: myReg=new RegExp('(20)','gim');myStr='10202030';myReg.test(myStr);document.write(myStr+' '+myReg+' '+RegExp.lastParen+'')
°á°ú:
¿¹Á¦leftContext ¼Ó¼º (=$` ¼Ó¼º) IE5.5 NS4
¢¡ ÃÖ±Ù ÀÏÄ¡ ÈÄ ±× ¿ÞÂÊ ºÎºÐ ¹®ÀÚ¿­À» ¹ÝȯÇÑ´Ù. °íÁ¤(satic)À̹ǷΠÇ×»óRegExp.leftContext¸¦ »ç¿ëÇÑ´Ù.
¹®¹ý: RegExp.leftContext
ÄÚµå: myReg=new RegExp('(20)','gim');myStr='10202030';myReg.test(myStr);document.write(myStr+' '+myReg+' '+RegExp.leftContext)
°á°ú:
¿¹Á¦multiline ¼Ó¼º (=$* ¼Ó¼º) IE4 NS4
¢¡ ¿©·¯ ÁÙÀ» ÅëÇÏ¿© °Ë»öÀ» ¼öÇà ÇÒ °ÍÀΰ¡¸¦ ³ªÅ¸³»´Â 'm' flag°¡ »ç¿ëµÇ¾ú´ÂÁö¸¦ ÂüÁ¶ÇÏ¿© ¼³Á¤µÇ¾î ÀÖÀ¸¸é true¸¦ ¹ÝȯÇÏ°í ¾Æ´Ï¸é false¸¦ ¹ÝȯÇÑ´Ù.
¿©·¯ ÁÙ ÀÔ·ÂÀ» ÀüÁ¦·Î ÇÏ´Â textArea °³Ã¼¿¡¼­ À̺¥Æ®Ã³¸®ÀÚ¸¦ È£ÃâÇÏ¸é ºê¶ó¿ìÀú´Â ÀÌ multiline ¼Ó¼ºÀ» true ·Î ¼³Á¤ÇÏ°í, À̺¥Æ®Ã³¸®ÀÚ°¡ ¼öÇàÀ» ¿Ï·áÇϸé È£ÃâÀü¿¡ ¸ÕÀú true·Î ¼³Á¤µÇ¾î Àְųª¿¡ ±­°è¾øÀÌ false·Î Àç¼³Á¤ÇÑ´Ù.
°íÁ¤(satic)À̹ǷΠÇ×»óRegExp.multilineÀ» »ç¿ëÇÑ´Ù.
¹®¹ý: RegExp.multiline
ÄÚµå: myStr='aBcDeF';myReg=new RegExp('cd','gim');document.write(myReg.multiline) °á°ú:
¿¹Á¦prototype ¼Ó¼º IE4 NS4
¢¡ ¼³Á¤ÀÚ°¡ ¸Þ¼­µå¿Í ¼Ó¼ºµéÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Â °³Ã¼ÀÇ Å¬·¡½ºÀÇ Ãʱ⠼³Á¤¿¡ ´ëÇÑ prototypeÀ» ³ªÅ¸³½´Ù. ¼³Á¤ÀÚ°¡ ¿øÇÏ´Â ¼Ó¼ºµé°ú ¸Þ¼­µåµéÀ» ¸¸µé¾î Ãß°¡ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. Object.prototype ȤÀº Function.prototype ¼Ó¼ºÀ» Âü°íÇ϶ó.
¹®¹ý: RegExp.prototype=newPrototype]
ÄÚµå: RegExp.prototype.myReg=proto;function proto(){myStr='aBcDeF';myReg=new RegExp('cd','gim')};document.write(RegExp.prototype.myReg) °á°ú:
¿¹Á¦rightContext ¼Ó¼º (=$' ¼Ó¼º) IE5.5 NS4
¢¡ ÃÖ±Ù ÀÏÄ¡ ÈÄ ±× ¿À¸¥ÂÊ ºÎºÐ ¹®ÀÚ¿­À» ¹ÝȯÇÑ´Ù. °íÁ¤(satic)À̹ǷΠÇ×»óRegExp.leftContext¸¦ »ç¿ëÇÑ´Ù.
¹®¹ý: RegExp.rightContext
ÄÚµå: myReg=new RegExp('(20)','gim');myStr='10202030';myReg.test(myStr);document.write(myStr+' '+myReg+' '+RegExp.rightContext)
°á°ú:
¿¹Á¦source ¼Ó¼º IE4 NS4
¢¡ Àбâ Àü¿ë ¼Ó¼ºÀ¸·Î Á¤±Ô½ÄÀÇ ¼Ò½º¸¦ ¹ÝȯÇÑ´Ù. Á¤±Ô½Ä /.../ »çÀÌÀÇ ³»¿ëÀÌ´Ù.
¿¹¸¦µé¾î Á¤±Ô½Ä rexp=/[^boy\s]{2}/g¿¡¼­ source ¼Ó¼º°ªÀº [^boy\s]{2}ÀÌ´Ù.
source ¼Ó¼ºÀº Á÷Á¢ÀûÀ¸·Î ¼öÁ¤ÇÒ ¼ö ¾øÀ¸³ª compile ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.
¹®¹ý: regObj.source
ÄÚµå: document.write(myReg+' '+myReg.source) °á°ú:
ÄÚµå: myReg=new RegExp('[^test\s]{2}','g');document.write(myReg+' '+myReg.source) °á°ú:

¿¹Á¦compile ¸Þ¼­µå IE4 NS4
¢¡ ½ºÅ©¸³Æ® ¼öÇàÁß Á¤±Ô½Ä °³Ã¼¸¦ ÄÄÆÄÀÏÇÑ´Ù.
¹®¹ý: regObj.compile(pattern[,flags])
ÄÚµå: myReg.compile('[^test\s]{2}','g');document.write(myReg+' '+myReg.source) °á°ú:
¿¹Á¦exec ¸Þ¼­µå IE4 NS4
¢¡ ÁöÁ¤µÈ ¹®ÀÚ¿­ ¼Ó¿¡¼­ ÀÏÄ¡ÇÏ´Â ¹®ÀÚ¿­À» °Ë»öÇÏ¿© ¹è¿­º¯¼ö(array)·Î ¹ÝȯÇÑ´Ù.
¹®¹ý: regObj.exec([str])
ÄÚµå: myReg=/[test]/g;myStr='my tests';document.write(myStr+' '+myReg+' '+myReg.exec(myStr)) °á°ú:
¿¹Á¦test ¸Þ¼­µå IE4 NS4
¢¡ ÁöÁ¤µÈ ¹®ÀÚ¿­ ¼Ó¿¡¼­ ÀÏÄ¡ÇÏ´Â ¹®ÀÚ¿­À» °Ë»öÇÏ¿© ÀÖÀ¸¸é true, ¾øÀ¸¸é falseÀÇ ºÎ¿ï°ªÀ» ¹ÝȯÇÑ´Ù.
¹®¹ý: regObj.test([str])
ÄÚµå: myReg=/test/g;myStr='my tests';document.write(myStr+' '+myReg+' '+myReg.test(myStr)) °á°ú:
toSource ¸Þ¼­µå IE4 NS4.06
¢¡ ÁöÁ¤µÈ RegExp °³Ã¼¸¦ »ý¼ºÇϴµ¥ »ç¿ëµÈ ¼Ò½ºÄڵ带 ¹ÝȯÇÏ°í, ÀϹÝÀûÀ¸·Î JavaScript¿¡ ÀÇÇØ Á÷Á¢ È£ÃâµÈ´Ù.
»õ·ÎÀº °³Ã¼¸¦ ¸¸µé¼ö ÀÖÀ¸¸ç, ÀÌ´Â Object.toSource ¸Þ¼­µå¸¦ µ¤¾î¾º¿î´Ù.
¹®¹ý: regObj.toSource()
¿¹Á¦toString ¸Þ¼­µå IE4 NS4
¢¡ RegExp °³Ã¼ÀÇ ¹®ÀÚ¿­À» ¹ÝȯÇÏ°í, Object.toString ¸Þ¼­µå¸¦ µ¤¾î ¾º¿î´Ù.
¹®¹ý: regObj.toString()
ÄÚµå: myReg=/test/g;myStr='my tests';document.write(myReg+' '+myReg.toString()) °á°ú:
¿¹Á¦valueOf ¸Þ¼­µå IE NS
¢¡ RegExp °³Ã¼ÀÇ ¿ø½Ã°ªÀ» ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ¹ÝȯÇϸç, ÀÌ´Â RegExp.toString ¸Þ¼­µå¿Í °°´Ù. ÀϹÝÀûÀ¸·Î JavaScript¿¡ ÀÇÇØ ³»ºÎÀûÀ¸·Î È£ÃâµÇ°í Object.valueOf ¸Þ¼­µå¸¦ µ¤¾î ¾º¿î´Ù.
¹®¹ý: regObj.valueOf()
ÄÚµå: myReg=/test/g;myStr='my tests';document.write(myReg+' '+myReg.valueOf()) °á°ú:
watch¿Í unwatch ¸Þ¼­µå - NS
RegExp °³Ã¼´Â Object °³Ã¼ÀÇ watchNS¿Í unwatchNS ¸Þ¼­µå¸¦ Àü´Þ¹Þ´Â´Ù.