22.09.16 μμ μκ° μ€ κ³΅λΆν λ΄μ©λ€μ μ 리νμμ΅λλ€ π
νΌλλ°±μ μΈμ λ νμμ λλ€! π
μ€λ Pair Programming λ, μ 체 λͺ©λ‘μμ μΌμΉνλ λ¬Έμμ΄μ΄ μμΌλ©΄ κ·Έ λͺ©λ‘μ λ°ννλ κΈ°λ₯μ ꡬννλ κ³Όμ λ₯Ό ν΄κ²°νκ³ μμμ΅λλ€.
ν΄κ²°μ νλ€κ°, λ¬Έμ μ μ λ°κ²¬νμ΅λλ€.
μ κ·ννμμμ matchλ₯Ό μ¬μ©νμ λλ ν΄λΉνλ λͺ¨λ λͺ©λ‘μ΄ λ°νλλλ°, testλ₯Ό μ¬μ©νμ λλ ν΄λΉνλ λͺ¨λ λͺ©λ‘μ΄ λ°νλμ§ μλλ€λ κ²μ λλ€.
μλ₯Ό λ€μλ©΄ μλμ κ°μ΅λλ€.
const regex = /such/ig;
const testValue1 = 'You are such a great student!'
const testValue2 = 'It was such a nice restaurant'
console.log(regex.test(testValue1)); // true
console.log(regex.test(testValue2)); // false
λΆλͺ
μ λ suchλ₯Ό κ²μνκΈ° λλ¬Έμ, testValue1κ³Ό testValue2 λͺ¨λ true
κ°μ΄ λμμΌ νλλ°, μλ testValue2λ false
κ°μ΄ λμ€λ λ¬Έμ μ
λλ€.
μ΄κ² μ μ΄λ΄κΉ.. κ³ λ―Όμ λ§μ΄ νλ€, μ°μ κ³Όμ ν΄κ²°μ μν΄ μ ν¬ μ‘°λ matchλ₯Ό μ¬μ©νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμμ΅λλ€.
π€ κ·Έλ°λ° μ΄ μ΄μ κ° λ무λλ κΆκΈν κ²μ λλ€..!
μ΄κ²μ λ°λ‘, μ΄κ² μ κ· ννμμμ ν΄λΉνλ λͺ¨λ κ°μ μ°ΎκΈ° μν΄ μ¬μ©νλ βgβ flag
μ lastIndex
λ¬Έμ λλ¬Έμ΄μμ΅λλ€.
λͺ¨λ κ°μ μ°ΎκΈ° μν΄μλ μ κ· ννμμμ κΈ°λ³Έμ μΌλ‘ νμ¬κΉμ§ μ°Ύμ indexλ₯Ό λ΄λΆμ μΌλ‘ κ°μ§κ³ μλλ°, κ·Έκ² λ°λ‘Β lastIndex
μμ±μ
λλ€.
μ΄ μμ± λλ¬Έμ, μ μμμ console.logλ‘ lastIndex μμ±μ μ λ ₯νλ©΄ μ°¨λ‘λ‘ λ€μκ³Ό κ°μ΄ λμ€κ² λ©λλ€.
const regex = /such/ig;
const testValue1 = 'You are such a great student!'
const testValue2 = 'It was such a nice restaurant'
console.log(regex.test(testValue1)); // true
console.log(regex.lastIndex); // 12
console.log(regex.test(testValue2)); // false
console.log(regex.lastIndex); // 0
μ²μ 12λ testValue1μμ suchμ λ§μ§λ§ Index κ°μ λ°ννκ² λ©λλ€.
κ·Έ ν λ λ²μ§Έ κ²μμμλ, lastIndex κ°μ΄ 12κ° λ μνμμ μμνκΈ° λλ¬Έμ, 12λ² μ§Έ μλ¦Ώμ λ€λΆν° κ²μνκ² λλ, return κ°μ΄ falseκ° λμΆλκ² λλ κ²μ λλ€.
μ΄κ² κ²μλλ μμκ° μ΄νμ λμ¨λ€λ©΄, true κ°μ΄ λμμ λ¬Έμ μμ΄ μ¬μ©ν μ μμκ² μ§λ§, μ ν¬λ μ½λμ μ€λ₯λ₯Ό λ³΄μ§ λͺ»νκ³ κ³μ μ¬μ©νκ² λλ―λ‘, λμ€μ λ ν° λ¬Έμ λ₯Ό λ°κ²¬ν μλ μλ μν©μ΄ λ€κ°μ¬ μλ μμ΅λλ€.
μ ν¬λ lastIndexλ₯Ό κ³ λ €νμ§ μκ³ , μ½λλ₯Ό μ§°κΈ°μ, μ κ·μμ λ³μμ λ΄μλκ³ κ·Έκ±Έ μ¬νμ©ν΄μ μ¬μ©νμ§λ§,
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄μλ, lastIndex κ°μ κ·Έ λ κ·Έ λ 0μΌλ‘ κ°±μ ν΄μ€μ λͺ¨λ κ°μ μ°Ύμ μ μλλ‘ νλ©΄ λκ² μ΅λλ€.