μΆμ²: MDN Web Docs
μ κ·ννμ (μ κ·μ) - Regular expression
μ κ· ννμμ λ¬Έμμ΄μ λνλλ νΉμ λ¬Έμ μ‘°ν©κ³Ό λμμν€κΈ° μν΄ μ¬μ©λλ ν¨ν΄μΌλ‘, μλ°μ€ν¬λ¦½νΈμμ μ κ· ννμ λν κ°μ²΄μ΄λ€. μ΄ ν¨ν΄λ€μ RegExpμ exec, test λ©μλμ Stringμ match, replace, search, split λ©μλμ ν¨κ» μ°μΈλ€.
μ κ· ννμμ λ§λλ λ°©λ²
1. μ κ·μ 리ν°λ΄μ μ¬μ©νλ λ°©λ² ( μ κ·μμ΄ κ°(=ν¨ν΄)μ΄ λ³νμ§ μλ μμμΌ λ μ¬μ©νλ κ²μ μΆμ² )
μ¬λμ( / )λ‘ κ°μΈλ ν¨ν΄μ μ¬μ©νμ¬ λ§λλ λ°©λ²μ΄λ€. μ κ·μ 리ν°λ΄μ μ¬μ©νκ² λλ©΄ μ€ν¬λ¦½νΈκ° λΆλ¬μμ§ λ μ»΄νμΌ λλ€.
var re = /ab+c/;
2. RegExp κ°μ²΄μ μμ±μ ν¨μλ₯Ό νΈμΆνλ λ°©λ² ( μ κ·μμ κ°(=ν¨ν΄)μ΄ λ³μμΌ λ μ¬μ©νλ κ²μ μΆμ² )
RegExp κ°μ²΄μ μμ±μλ₯Ό νΈμΆνλ€. μμ±μ ν¨μλ₯Ό μ¬μ©νλ©΄ μ κ·μμ΄ μ€ν μμ (=λ°νμ)μ μ»΄νμΌ λλ€.
μ κ·μμ ν¨ν΄μ΄ λ³κ²½λ κ°λ₯μ±μ΄ μκ±°λ μ¬μ©μμ μ λ ₯ κ°κ³Ό κ°μ΄ λ³μμ ν¨ν΄μ κ°μ ΈμμΌ νλ κ²½μ°, μμ±μ ν¨μλ₯Ό μ¬μ©ν΄μΌ νλ€.
var re = new RegExp("ab+c");
μ κ·μ ν¨ν΄ μμ±
1. λ¨μ ν¨ν΄ μ¬μ©νκΈ°
λ¨μ ν¨ν΄μ λ¬Έμμ΄μ μλ κ·Έλλ‘ λμμν¬ λ μ¬μ©λλ€.
// μλ ν¨ν΄μ κ²½μ°, λ¬Έμμ΄μ΄ μ νν 'abc'μ¬μΌ νλ€.
/abc/
var a = 'Hi, do you know your abc?' // μ μ©λ¨.
var b = 'Grab crab' // μ μ©λμ§ μμ. (μ νν 'abc'κ° μλκΈ° λλ¬Έμ)
2. νΉμ λ¬Έμ μ¬μ©νκΈ°
νλ μ΄μμ 'b'λ₯Ό μ°Ύκ±°λ, 곡백 λ¬Έμ μ°ΎκΈ° λ± μ§μ μ μΈ μΌμΉ μ΄μμ νμμ΄ νμν κ²½μ° νΉμλ¬Έμλ₯Ό μ¬μ©νλ€.
λ¬Έμ / μ‘°ν© | λ¬Έμ |
\, ., \cX, \d, \D, \f, \n, \r, \s, \S, \t, \v, \w, \W, \0, \xhh, \uhhhh, \uhhhhh, [\b] | λ¬Έμ ν΄λμ€ (en-US) |
^, $, x(?=y), x(?!y), (?<=y)x, (?<!y)x, \b, \B | μ΄μμ |
(x), (?:x), (?<Name>x), x|y, [xyz], [^xyz], \Number | κ·Έλ£Ήκ³Ό λ²μ |
*, +, ?, x{n}, x{n,}, x{n,m} | μλμ (en-US) |
\p{UnicodeProperty}, \P{UnicodeProperty} | μ λμ½λ μμ± μ΄μ€μΌμ΄ν (en-US) |
μΆμ² - MDN
- μ΄μ€μΌμ΄ν
νΉμ λ¬Έμλ₯Ό μλ κ·Έλλ‘ νμν΄μΌ νλ κ²½μ°, νΉμ λ¬Έμ μμ μμ¬λμ( \ )λ₯Ό λ°°μΉν΄μ μ΄μ€μΌμ΄ν ν΄μΌ νλ€. μμ¬λμλ₯Ό μ΄μ©νμ¬ μ΄μ€μΌμ΄ννλ©΄, νΉμλ¬Έμκ° μλ λ¬Έμ 리ν°λ΄λ‘ μ·¨κΈνλ€.
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $&μ μΌμΉν λ¬Έμμ΄ μ 체λ₯Ό μλ―Έ
}
- κ΄νΈ μ¬μ©νκΈ°
μ κ· ννμμ μ무 λΆλΆμ΄λ κ΄νΈλ‘ κ°μΈκ² λλ©΄, κ·Έ λΆλΆκ³Ό μΌμΉνλ λΆλΆ λ¬Έμμ΄μ κΈ°μ΅νκ² λλ€. κΈ°μ΅ν λΆλΆ λ¬Έμμ΄μ λΆλ¬μμ μ¬μ¬μ©μ΄ κ°λ₯νλ€.