regexp lastIndex
정규식 test는 true인데 exec가 동작하지 않는다?!
1 | if (regexp.test(line)) { |
regexp.lastIndex = 0
잘못된 코드
1 | if (regexp.test(line)) { |
- 처음에 작성한 코드다
- 파일의 라인 한 줄 한 줄 읽으면서
- 정규식 패턴과 일치하는 라인이라면
- 결괏값을 받도록 만들었는데, 이상하게도 제대로 동작하지 않았다
- 알고 보니까
test()
메서드도 lastIndex를 갱신했었다… - 사실 저
if (regexp.test(line)) {
은 필요 없는 코드 같다 test
와exec
를 같이 쓸 때 주의가 필요하다
참고
regexp lastIndex