👋 y 플래그
y 플래그
-
lastIndex
위치에 매치const vlaue = 'AABBA', obj = /A/y; console.log(obj.test(value) + ': ' + obj.lastIndex); console.log(obj.test(value) + ': ' + obj.lastIndex); console.log(obj.test(value) + ': ' + obj.lastIndex); // 1. g 플래그를 사용하지 않음 // 2. obj.test(value) A가 매치되어 true가 출력됨 // 3. lastIndex의 디폴트 값이 0이므로 0번 인덱스의 A에 매치한 것 // 4. obj.lastIndex 1이 출력되며, 매치된 인덱스에 1을 더한 값, y 플래그는 매치가 되면 lastIndex에 1을 더함 // 5. obj.test(vlaue) A가 매치되어 ture가 출력됨, 1번 인덱스의 A에 매치한 것 // 6. obj.lastIndex 2가 출력되며 매치된 인덱스에 1을 더한 값임 // 7. obj.test(value) A가 매치되지 않아 false가 출력됨 // 8. 4번 인덱스에 A가 있지만 2번 인덱스에 매치하며 2번 인덱스 값이 B이므로 매치되지 않음 // 9. obj.lastIndex 매치되지 않으면 lastIndex 값이 0이 됨 // 결과 // true: 1 // true: 2 // false: 0
lastIndex
부터가 아니라lastIndex
위치에 매치- 매치되면
lastIndex
값이 1증가 const value = "AABBA"
,obj = /A/y
-
lastIndex
값을 지정할 수 있음const vlaue = 'AABBA', obj = /A/y; console.log(obj.sticky); // true obj.lastIndex = 4; console.log(obj.test(value) + ': ' + obj.lastIndex); // true: 5 // 1. obj.sticky y플래그를 사용하면 sticky 프로퍼티에 true가 설정됨 // 2. obj.lastIndex = 4 lastIndex 프로퍼티 값에 4를 할당했으므로 4번 인덱스의 문자에 매치하게 됨 // 3. obj.test(target) 4번 인덱스에 A가 있으므로 매치가 되어 true가 출력됨 // 4. obj.lastIndex 1이 증가된 5가 출력 됨
sticky
프로퍼티에true
설정