언어, 프레임워크/Javascript & Typescript
[Javascript] test() 사용시 정규표현식에 g 플래그 포함할 경우
jaee
2023. 3. 13. 15:36
틀린 내용이 있을 수 있습니다.
발견하시면 말씀 부탁드립니다! 🙇
정규표현식과 test() 메소드를 통해 문자열에 숫자가 포함되어있는지 체크하는 코드를 작성하다가, 글로벌(g) 플래그 여부에 따라 결과가 다른 것을 알게되었다.
let checkNum = /[0-9]/;
let checkNumGlobal = /[0-9]/g;
mdn test method 문서를 확인해보니, 정규표현식에 g플래그를 붙이고 test() 메소드를 실행할 때 결과가 true일 때마다 정규표현식 객체의 lastIndex 프로퍼티를 업데이트한다고 되어있다. lastIndex는 다음 메소드 실행시 시작할 인덱스이다. 만약 test() 메소드 결과가 false이면 lastIndex가 0으로 업데이트 된다.
참고 자료
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex