728x90

동일한 정규식에 동일한 값을 넘겼음에도

반복해서 true, false를 번갈아 반환했다.

대체 왜!!!

 

이유

정규식에 g 옵션이 있으면, test() 메소드는 정규 표현식의 lastIndex를 업데이트하게 된다.

test() 메소드와 exec() 메소드는 내부적으로 lastIndex부터 문자열을 검사하게 되는데,

test() 메소드는 true를 반환했던 lastIndex부터 계속해서 검사하게 된다.

 

그리고 lastIndex는 false를 반환하기 전 까지 초기화가 안되는 특징이 있다.

 

따라서, 체크때마다 true / false를 반복해서 반환하는 이슈가 발생

728x90
반응형