티스토리 뷰
자바스크립트 정규 표현식 test() 메소드를 반복적으로 수행 할 경우 값이 계속 바뀌던 문제가 있었다.
문제의 원인은 정규 표현식의 전역 플래그(g) 때문이였다.
정규 표현식에 전역 플래그를 설정한 경우, test() 메소드는 정규 표현식의 lastIndex를 업데이트하게 된다.
test() 메소드와 exec() 메소드는 내부적으로 lastIndex부터 문자열을 검사하게 되는데, test() 메소드는 true를 반환했던 lastIndex부터 계속해서 검사하게 된다. 그리고 lastIndex는 false를 반환하기 전 까지 초기화가 안되는 특징이 있다.
따라서 같은 문자열을 계속해서 test() 메소드로 검사하게 되면 true와 false를 반복해서 리턴하게 된다.
다른 대안으로는 search() 메소드와 match() 메소드가 있다.
match() 메소드는 search() 메소드보다 실행이 느리기때문에 해결방법으로 search() 메소드를 활용했다.
'TIL' 카테고리의 다른 글
CKeditor5 값 가져오기 세팅하기 (0) | 2021.04.01 |
---|---|
데이터 베이스 키(key)의 종류 (0) | 2021.03.23 |
jQuery keyup() 메소드로 유효성 검사 하기 (0) | 2021.03.03 |
홈브루(Homebrew) 명령어 실행 시 Ignoring 문구가 뜨는 문제 (4) | 2021.02.26 |
자바스크립트(JavaScript) ES6, ES11 문법 간단 정리 (0) | 2021.02.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 인텔리제이
- IntelliJ
- Stream
- git
- 충돌에러
- interface
- 이클립스
- homebrew
- EC2
- IDE
- optional
- S3
- rbenv
- 데이터베이스
- Gson
- 스트림
- gem
- framework
- Thymeleaf
- 타임리프
- JSON
- Github
- Set
- bootstrap
- Docker
- 유효성 검사
- Spring
- java
- Jackson
- 도커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함