정규 표현식 test() 메소드 반복 수행시 결과값이 다르던 이유
자바스크립트 정규 표현식 test() 메소드를 반복적으로 수행 할 경우 값이 계속 바뀌던 문제가 있었다. 문제의 원인은 정규 표현식의 전역 플래그(g) 때문이였다. 정규 표현식에 전역 플래그를 설정한 경우, test() 메소드는 정규 표현식의 lastIndex를 업데이트하게 된다. test() 메소드와 exec() 메소드는 내부적으로 lastIndex부터 문자열을 검사하게 되는데, test() 메소드는 true를 반환했던 lastIndex부터 계속해서 검사하게 된다. 그리고 lastIndex는 false를 반환하기 전 까지 초기화가 안되는 특징이 있다. 따라서 같은 문자열을 계속해서 test() 메소드로 검사하게 되면 true와 false를 반복해서 리턴하게 된다. 다른 대안으로는 search() 메소드..
TIL
2021. 3. 5. 12:27
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 충돌에러
- 스트림
- 인텔리제이
- rbenv
- IDE
- 이클립스
- interface
- Thymeleaf
- JSON
- bootstrap
- S3
- java
- 도커
- IntelliJ
- Github
- Set
- homebrew
- EC2
- gem
- 타임리프
- Spring
- 유효성 검사
- Stream
- optional
- framework
- 데이터베이스
- Jackson
- Docker
- Gson
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함