Skip to content

Latest commit

ย 

History

History
144 lines (114 loc) ยท 4.8 KB

ch31-ํ•ด์„ค.md

File metadata and controls

144 lines (114 loc) ยท 4.8 KB

Chapter31

๐Ÿ“Œ๋ฌธ์ œ1

์ฝ”๋“œ์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜์„ธ์š”.

  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๋ฒˆ ํฌํ•จ) ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด์„ ์˜๋ฏธํ•œ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ2

๋‹ค์Œ ๋ฌธ์žฅ์„ ๋ณด๊ณ  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๋ฒˆ ํฌํ•จ) ๋ฐ˜๋ณต๋˜๋Š”์ง€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ3

์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํžˆ์„ธ์š”.

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๊ฐ€ ์ตœ์†Œ ํ•œ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ๋ฌธ์ œ4

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 : ์ปด๋งˆ ์˜†์— ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜๋ฉด ์ •์ƒ์ž‘๋™ ๋˜์ง€ ์•Š๋Š”๋‹ค. 

๐Ÿ“Œ๋ฌธ์ œ5

๋‹ค์Œ ๋ณด๊ธฐ์˜ ์˜ค์ง ํ•œ๊ธ€(์ž์Œ๋งŒ, ๋ชจ์Œ๋งŒ, ์ž์Œ๊ณผ ๋ชจ์Œ์œผ๋กœ ๊ฒฐํ•ฉ๋œ ๊ธ€์ž)๋งŒ ๋ชจ๋‘ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ •๊ทœํ‘œํ˜„์‹์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

// (ํžŒํŠธ) ์ž์Œ๊ณผ ๋ชจ์Œ์˜ ์กฐํ•ฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ•œ๊ธ€์˜ ์ฒ˜์Œ๊ณผ ๋์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
// ํ•œ๊ธ€์˜ ๊ธ€์ž ์ฒ˜์Œ : ๊ฐ€
// ํ•œ๊ธ€์˜ ๊ธ€์ž ๋ : ํžฃ

[๋ณด๊ธฐ]
ใ„ดr๋Š” ใ„ฑr๋” ๋ˆˆ๋ฌผ์„ํ˜๋ฆฐใ„ทr...
ใ„ฑr๋”์€ ๋ˆˆ๋ฌผ์„์ฐธ์„์ˆ˜์—†๋Š”ใ„ดhใ„ฑr๋ณ„๋ฃจใ„ทr..
๋ง˜ใ…‡1 OrํŒŒr์„œ...์†Œใ„น1ใ…Š1๋ฉฐ...์šธ์ˆ˜์žˆใ„ทr๋Š”๊ฑด...
์ข‹์€ใ„ฑใ…“์•ผ..โ–กใ…“..๊ผญ์Šฌํผ์•ผ๋งŒ์šฐ๋Š”๊ฑดใ…‡rใ„ด1์ž–์•„..^^
๋‚œ..๋ˆˆ๋ฌผใ…‡1...์ข‹ใ„ทr..โ˜†
ใ…‡rใ„ด1..๋จธใ„น1ใ„ฑrOr๋‹Œ..๋ง˜์œผ๋กœ..์šฐ๋Š”ใ„ดhใ„ฑr์ข‹๋‹ค..โ˜†

์ •๋‹ต ๋ฐ ํ•ด์„ค

์ •๋‹ต : /[ใ„ฑ-ใ…Ž|ใ…-ใ…ฃ|๊ฐ€-ํžฃ]/g

์ •๋‹ต์„ ์—ฌ๋Ÿฌ๊ฐ€์ง€๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์œ„์™€ ๊ฐ™๋‹ค.
์ •๊ทœํ‘œํ˜„์‹์˜ ํ•œ๊ธ€ ์ž‘์„ฑ ๊ฒ€์‚ฌ, ์ถ”์ถœ๋„ ์œ ์šฉํ•  ๊ฑฐ๋ผ ์˜ˆ์ƒ๋˜์–ด ์ถœ์ œํ•˜์˜€๋‹ค.