언어, 프레임워크/Javascript & Typescript

[Javascript] test() 사용시 정규표현식에 g 플래그 포함할 경우

jaee 2023. 3. 13. 15:36

 

틀린 내용이 있을 수 있습니다.
발견하시면 말씀 부탁드립니다! 🙇


 

정규표현식과 test() 메소드를 통해 문자열에 숫자가 포함되어있는지 체크하는 코드를 작성하다가, 글로벌(g) 플래그 여부에 따라 결과가 다른 것을 알게되었다. 

let checkNum = /[0-9]/;
let checkNumGlobal = /[0-9]/g;

좌) g 키워드 안붙였을 때 / 우) g 키워드 붙였을 때

mdn test method 문서를 확인해보니, 정규표현식에 g플래그를 붙이고 test() 메소드를 실행할 때 결과가 true일 때마다 정규표현식 객체의 lastIndex 프로퍼티를 업데이트한다고 되어있다. lastIndex는 다음 메소드 실행시 시작할 인덱스이다. 만약 test() 메소드 결과가 false이면 lastIndex가 0으로 업데이트 된다.

checkNumber = /[0-9]/g;

 


참고 자료