정규식에서 'g'플래그의 의미는 무엇입니까?
g
정규식 에서 플래그 의 의미는 무엇입니까 ?
/.+/g
과 의 차이점은 무엇입니까 /.+/
?
g
글로벌 검색 용입니다. 모든 발생과 일치한다는 의미입니다. 일반적으로 i
대소 문자 무시를 의미하는 것도 볼 수 있습니다.
참조 : 글로벌-JavaScript | MDN
"g"플래그는 문자열에서 가능한 모든 일치에 대해 정규식을 테스트해야 함을 나타냅니다.
g
플래그가 없으면 첫 번째 만 테스트합니다.
설명 할 자바 스크립트의 예 :
> 'aaa'.match(/a/g)
[ 'a', 'a', 'a' ]
> 'aaa'.match(/a/)
[ 'a', index: 0, input: 'aaa' ]
g
전역 검색 플래그입니다.
전역 검색 플래그는 RegExp가 문자열 전체에서 패턴을 검색하도록하여 주어진 패턴과 일치하는 모든 항목의 배열을 만듭니다.
차이 사이 있도록 /.+/g
하고하는 것은 /.+/
것입니다 g
버전 대신 첫 번째의 모든 발생을 찾을 수 있습니다.
/.+/g
와 사이에는 차이가 없습니다. /.+/
둘 다 전체 문자열과 한 번만 일치하기 때문입니다. 는 g
정규 표현식 번 이상 일치하거나 경우가있는 그룹을 포함 할 수 있다면 차이가 .match()
일치하는 배열 대신 그룹의 배열을 반환됩니다.
@matiska가 지적했듯이 g
플래그는 lastIndex
속성도 설정합니다 .
이것의 매우 중요한 부작용은 일치하는 문자열에 대해 동일한 정규식 인스턴스를 재사용하는 경우 lastIndex
.
// regular regex
const regex = /foo/;
// same regex with global flag
const regexG = /foo/g;
const str = " foo foo foo ";
const test = (r) => console.log(
r,
r.lastIndex,
r.test(str),
r.lastIndex
);
// Test the normal one 4 times (success)
test(regex);
test(regex);
test(regex);
test(regex);
// Test the global one 4 times
// (3 passes and a fail)
test(regexG);
test(regexG);
test(regexG);
test(regexG);
이미 언급 된 g
플래그의 의미 외에도 regexp.lastIndex
속성에 영향 을줍니다.
lastIndex는 다음 일치를 시작할 인덱스를 지정하는 정규식 인스턴스의 읽기 / 쓰기 정수 속성입니다. (...)이 속성은 정규식 인스턴스가 전역 검색을 나타 내기 위해 "g"플래그를 사용한 경우에만 설정됩니다.
참조 : Mozilla 개발자 네트워크
정규식에서 G는 전역 검색을 정의합니다. 즉, 모든 행의 모든 인스턴스를 검색합니다.
문자열을 기반으로 예제를 제공합니다. 문자열에서 모든 항목을 제거하려는 경우. "hello world"에서 ""와 함께 "o"의 모든 항목을 제거하려면
"hello world".replace(/o/g,'');
'developer tip' 카테고리의 다른 글
Jquery 선택기 입력 [type = text] ') (0) | 2020.09.03 |
---|---|
WinForms 진행률 표시 줄을 사용하는 방법? (0) | 2020.09.03 |
'rt'및 'wt'모드에서 파일 열기 (0) | 2020.09.03 |
Log4j2에서 프로그래밍 방식으로 로그 수준 변경 (0) | 2020.09.03 |
브라우저 창에 맞게 이미지 크기를 조정하는 방법은 무엇입니까? (0) | 2020.09.03 |