์ฝ๋์ ์คํ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ์ธ์.
console . log ( "12-34-56" . replace ( / -/ g, ":" ) ) ; // (1)
console . log ( "12-34-56" . replace ( / -/ , ":" ) ) ; // (2)
const cellphones = [ "010-1234-56789" , "010.1234.5678" , "01012345678" , "02-2134-1233" ] ;
for ( const cellphone of cellphones ) {
console . log ( / ^\d{3}[-.]\d{4}[-.]\d{4}/ . test ( cellphone ) ) ; // (3)
}
// (4) : (3)์ ์ถ๋ ฅํ๋ ๊ณผ์ ์์ false๊ฐ ์ถ๋ ฅ๋๋ค๋ฉด, true๋ก ์ถ๋ ฅ๋ ์ ์๊ฒ ์์ ํด๋ณด์ธ์.
(1) : 12:34:56 -> gํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋์ ๋ฌธ์์ด ๋ด์์ ํจํด๊ณผ ์ผ์นํ๋ ๋ชจ๋ ๋งค์นญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ๋ค.
(2) : 12:34-56 -> ํ๋๊ทธ๋ฅผ ์๋ตํ ์ ๊ทํํ์์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๋งค์นญ ๊ฒฐ๊ณผ๋ง ๋ฐ์ํ๋ค.
(3) :
true -> ^์ ๋ฌธ์์ด์ ์์์ด ํจํด์ผ๋ก ์์ํ๋์ง ํ์ธํ๋ค.
true -> []์์ ๋ฌธ์์ด์ or์กฐ๊ฑด์ผ๋ก ์ทจ๊ธ๋๋ค.
false -> []์์ ๋ง๋ ๋ฌธ์์ด์ด ์กด์ฌํ์ง ์๊ธฐ๋๋ฌธ์.
false -> ์ฒ์02 ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ, /d{3}์ 0~9๊น์ง๊ฐ 3๋ฒ์ด ๋ฐ๋ณต๋๋ค๋ ์๋ฏธ.
(4) : /^\d{2,3}[-.]?\d{4}[-.]?\d{4}/ -> {n,m}์ ์ต์ 2๋ฒ,์ต๋3๋ฒ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์๋ฏธํ๊ณ , ?๋ ์์ ํจํด([-.])์ด ์ต๋ ํ๋ฒ(0๋ฒ ํฌํจ) ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์๋ฏธํ๋ค.
๋ค์ ๋ฌธ์ฅ์ ๋ณด๊ณ true, false๋ฅผ ํ๋จํ์ธ์.
(1) : RegExp.prototype.exec ๋ฉ์๋๋ g ํ๋๊ทธ๊ฐ ์ง์ ๋๋ฉด ๋ชจ๋ ๋งค์นญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
(2) : ์ ๊ท ํํ์์ ํจํด ๊ฒ์์, ๋ฌธ์์ด์ ํ์ด ๋ฐ๋๋๋ผ๋ ํจํด ๊ฒ์์ ๊ณ์ ๋๋ค.
(3) : ์ ๊ท ํํ์ ํจํด์์ \D๋ ์ซ์๊ฐ ์๋ ๋ฌธ์๋ฅผ ์๋ฏธํ๊ณ , \d๋ ์ซ์๋ฅผ ์๋ฏธํ๋ค.
(4) : /^DeepDiver?:\/\//.test(target) ์ target์ r์ ์กด์ฌ ์ฌ๋ถ์ ์๊ด ์์ด ๋งค์น๋๋ค.
(1) : false
(2) : false
(3) : true
(4) : true
(1) : exec ๋ฉ์๋๋ g ํ๋๊ทธ๋ฅผ ์ง์ ํด๋ ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ๋ง ๋ฐํํฉ๋๋ค.
match ๋ฉ์๋๊ฐ g ํ๋๊ทธ๋ฅผ ์ง์ ํ๋ฉด ๋ชจ๋ ๋งค์นญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
(2) : ๋ฌธ์์ด์ ํ์ด ๋ฐ๋๋๋ผ๋ ํจํด ๊ฒ์์ ๊ณ์ ํ๋ ค๋ฉด m ํ๋๊ทธ๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
(4) : ?์ ์์ ํจํด์ด ์ต๋ ํ ๋ฒ ์ด์(0๋ฒ ํฌํจ) ๋ฐ๋ณต๋๋์ง๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฝ๋ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ์ธ์.
const target = "A AA AAA AAAA" ;
const regExp1 = / A{2, 3}/ g;
const regExp2 = / A{3}/ g;
const regExp3 = / A{3,}/ g;
const regExp2 = / AA+/ g;
console . log ( target . match ( regExp1 ) ) ; // (1)
console . log ( target . match ( regExp2 ) ) ; // (2)
console . log ( target . match ( regExp3 ) ) ; // (3)
console . log ( target . match ( regExp4 ) ) ; // (4)
(1) : null
(2) : [ 'AAA', 'AAA' ]
(3) : [ 'AAA', 'AAAA' ]
(4) : [ 'AA', 'AAA', 'AAAA' ]
(1) : ์ฝค๋ง ๋ค์ ๊ณต๋ฐฑ์ด ์์ผ๋ฉด ์ ์ ๋์ํ์ง ์์ต๋๋ค.
(2) : ํจํด์ด 3๋ฒ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์๋ฏธํฉ๋๋ค.
(3) : ํจํด์ด ์ต์ 3๋ฒ ์ด์ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์๋ฏธํฉ๋๋ค.
(4) : ์์ ํจํด์ธ AA๊ฐ ์ต์ ํ๋ฒ ์ด์ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์๋ฏธํฉ๋๋ค.
1) ์๋์ ์ฝ๋์์ regExp.exec(target)์ target.match(regExp)๋ ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค. (0 / X)
const target = "my name is prong. my dog's name is programmers";
const regExp = /is/g;
2) ๋ค์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค
const target = "a aabbc" ;
const regExp = / A{1,2}/
target . match ( regExp ) ; // (2)
const regExp2 = / a{1, 2}/ g
target . match ( regExp ) // (3)
1) x : match๋ /g ์ต์
์ด ๋ถ์ ๊ฒฝ์ฐ์๋ exec์ ๋ฌ๋ฆฌ ์ ์ฒด ๋ฌธ์์ด์ ๊ธฐ์ค์ผ๋ก ํด๋น ํํ์์ ๋ง๋ ๋ถ๋ถ์ ์ ๋ถ ์ฐพ๋๋ค.
2) null : ์ ๊ท์์ ๊ธฐ๋ณธ ์ต์
์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด๋ค.
3) null : ์ปด๋ง ์์ ๋์ด์ฐ๊ธฐ๋ฅผ ํ๋ฉด ์ ์์๋ ๋์ง ์๋๋ค.
๋ค์ ๋ณด๊ธฐ์ ์ค์ง ํ๊ธ(์์๋ง, ๋ชจ์๋ง, ์์๊ณผ ๋ชจ์์ผ๋ก ๊ฒฐํฉ๋ ๊ธ์)
๋ง ๋ชจ๋ ์ถ์ถํ ์ ์๋ ์ ๊ทํํ์์ ์์ฑํ์์ค.
// (ํํธ) ์์๊ณผ ๋ชจ์์ ์กฐํฉ์ผ๋ก ๋ง๋ค์ด์ง ํ๊ธ์ ์ฒ์๊ณผ ๋์ ์๋์ ๊ฐ์ต๋๋ค.
// ํ๊ธ์ ๊ธ์ ์ฒ์ : ๊ฐ
// ํ๊ธ์ ๊ธ์ ๋ : ํฃ
[๋ณด๊ธฐ]
ใดr๋ ใฑr๋ ๋๋ฌผ์ํ๋ฆฐใทr...
ใฑr๋์ ๋๋ฌผ์์ฐธ์์์๋ใดhใฑr๋ณ๋ฃจใทr..
๋งใ
1 Orํr์...์ใน1ใ
1๋ฉฐ...์ธ์์ใทr๋๊ฑด...
์ข์ใฑใ
์ผ..โกใ
..๊ผญ์ฌํผ์ผ๋ง์ฐ๋๊ฑดใ
rใด1์์..^^
๋..๋๋ฌผใ
1...์ขใทr..โ
ใ
rใด1..๋จธใน1ใฑrOr๋..๋ง์ผ๋ก..์ฐ๋ใดhใฑr์ข๋ค..โ
์ ๋ต : /[ใฑ-ใ
|ใ
-ใ
ฃ|๊ฐ-ํฃ]/g
์ ๋ต์ ์ฌ๋ฌ๊ฐ์ง๋ก ์์ฑํ ์ ์์ง๋ง, ๊ฐ์ฅ ๊ฐ๋จํ๊ฒ ์์ฑํ๋ฉด ์์ ๊ฐ๋ค.
์ ๊ทํํ์์ ํ๊ธ ์์ฑ ๊ฒ์ฌ, ์ถ์ถ๋ ์ ์ฉํ ๊ฑฐ๋ผ ์์๋์ด ์ถ์ ํ์๋ค.