Frontend/JavaScript

[JavaScript] μ •κ·œ ν‘œν˜„μ‹ μ•ˆμ— λ™μ μœΌλ‘œ λ³€μˆ˜λ₯Ό λ„£λŠ” 방법

_μ„±ν˜Έ_ 2023. 4. 23. 01:57
728x90
λ°˜μ‘ν˜•

μ •κ·œ ν‘œν˜„μ‹(Regular Expression)은 λ¬Έμžμ—΄μ—μ„œ νŠΉμ • 문자 쑰합을 μ°ΎκΈ° μœ„ν•œ νŒ¨ν„΄μ΄λ‹€.

 

RegExp

RegExp μƒμ„±μžλŠ” νŒ¨ν„΄μ„ μ‚¬μš©ν•΄ ν…μŠ€νŠΈλ₯Ό νŒλ³„ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

  • λ¦¬ν„°λŸ΄ ν‘œκΈ°λ²•μ˜ λ§€κ°œλ³€μˆ˜λŠ” 두 λΉ—κΈˆμœΌλ‘œ 감싸야 ν•˜λ©° λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μƒμ„±μž ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λŠ” λΉ—κΈˆμœΌλ‘œ 감싸지 μ•ŠμœΌλ‚˜ λ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•œλ‹€.
// μ •κ·œ ν‘œν˜„μ‹ μƒμ„±ν•˜κΈ°
/ab/g
new RegExp(/ab/, 'g') // λ¦¬ν„°λŸ΄
new RegExp('ab', 'g') // μƒμ„±μž

 

λ™μ μœΌλ‘œ μ •κ·œ ν‘œν˜„μ‹ μƒμ„±ν•˜κΈ°

const λ³€μˆ˜ = 'JS';
const regex = new RegExp(`${λ³€μˆ˜}`, 'g');
console.log(regex); // /JS/g

 

🧐 μ‘μš©ν•˜κΈ°

match() λ©”μ„œλ“œλŠ” λ¬Έμžμ—΄μ΄ μ •κ·œμ‹κ³Ό λ§€μΉ˜λ˜λŠ” 뢀뢄을 κ²€μƒ‰ν•œλ‹€.

const λ³€μˆ˜ = 'JS';
const regex = new RegExp(`${λ³€μˆ˜}`, 'g');
console.log(regex); // /JS/g

const str = 'JS곡뢀JS';
const result = str.match(regex); // ['JS', 'JS']
console.log(result.length); // 2

λ¬Έμžμ—΄μ—μ„œ ν•΄λ‹Ή λ³€μˆ˜κ°€ λͺ‡λ²ˆ μ“°μ˜€λŠ”μ§€ μ•Œκ³  싢을 λ•Œ μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€β—οΈβ—οΈ

 

μ°Έκ³  μ‚¬μ΄νŠΈ

 

String.prototype.match() - JavaScript | MDN

match() λ©”μ„œλ“œλŠ” λ¬Έμžμ—΄μ΄ μ •κ·œμ‹κ³Ό λ§€μΉ˜λ˜λŠ” 뢀뢄을 κ²€μƒ‰ν•©λ‹ˆλ‹€.

developer.mozilla.org