codestates / codestates/linkspot
[Client] 전원재 - 정규표현식 g플래그 에러
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
> 해결된 에러라면 라벨에 'Complete' 를 달아주세요.
> 미해결된 에러라면 라벨을 'In progress' 로 변경해주세요.
### 어떤 에러인가요?
- 정규표현식에서 g 플래그를 사용하여 만들어진 표현식은 test를 했을 때,
같은 코드지만 첫번째 결과와 두번째 결과가 다르다.
### 에러 메시지
없다
```js
console.log( nickname_Reg.test(e.target[1].value));
console.log(nickname_Reg.test(e.target[1].value));
```
위의 코드를 입력했을 때 결과 값
true
false
### 에러 핸들링 방법
- g 플래그 삭제
### 에러 핸들링을 위해 참고한 레퍼런스 링크
[링크](https://hayeon17kim.github.io/posts/regex-test-g/)
test()는 전역 탐색 플래그(/g)를 제공한 정규 표현식에서 여러 번 호출하면, 이전 일치 이후부터 탐색한다. 이건 exec()도 마찬가지이고, exec()와 test()를 혼용해 사용하는 경우에도 해당한다고 한다. test() 메서드나 exec() 메서드는 는 정규 표현식의 lastIndex를 업데이트 하는 방식으로 구현되어 있다. test(str)을 호출하면 str 검색을 lastIndex부터 계속 진행하고, lastIndex 속성은 매번 test()가 true를 반환할 때마다 증가하게 된다. 이때, test()가 false를 반환하면 lastIndex 속성이 0으로 초기화된다.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.