반응형
정규식과 일치하는 문자열인지 확인하기위한 regex.test VS string.match
여러 번 문자열 match
함수를 사용하여 문자열 이 정규식과 일치하는지 알고 있습니다.
if(str.match(/{regex}/))
이것 사이에 차이점이 있습니까?
if (/{regex}/.test(str))
그들은 같은 결과를주는 것 같습니까?
기본 사용법
먼저 각 기능이 무엇을하는지 보자.
의 RegexObject . 테스트 ( 문자열 )
정규식과 지정된 문자열이 일치하도록 검색을 실행합니다. true 또는 false를 반환 합니다 .
문자열 . 일치 ( RegExp )
문자열을 정규식과 일치시킬 때 일치 항목을 검색하는 데 사용됩니다. 일치하는 배열이 있거나
null
없는 배열을 반환합니다 .
이후 null
로 평가 false
,
if ( string.match(regex) ) {
// There was a match.
} else {
// No match.
}
공연
성능과 관련하여 차이가 있습니까?
예 . MDN 사이트 에서이 짧은 메모를 찾았습니다 .
문자열이 정규식 regexp와 일치하는지 알아야하는 경우 regexp.test (string)를 사용하십시오.
차이가 중요합니까?
한 번 더 대답은 예입니다 ! 이 jsPerf 는 브라우저에 따라 차이가 ~ 30 % ~ ~ 60 % 임을 보여줍니다 .
결론
.test
더 빠른 부울 검사를 원하면 사용 하십시오. 사용 .match
사용하는 경우 모든 일치를 검색하기 위해 g
글로벌 플래그를.
정규 표현식에서 전역 플래그를 고려하는 것을 잊지 마십시오.
var reg = /abc/g;
!!'abcdefghi'.match(reg); // => true
!!'abcdefghi'.match(reg); // => true
reg.test('abcdefghi'); // => true
reg.test('abcdefghi'); // => false <=
이는 Regexp가 새 일치 항목이 발견 될 때 lastIndex를 추적하기 때문입니다.
반응형
'IT' 카테고리의 다른 글
자바 스크립트로 부트 스트랩 모달을 숨기는 방법? (0) | 2020.03.28 |
---|---|
로컬 네트워크에서 유효한 모든 IP 주소 목록을 얻는 방법은 무엇입니까? (0) | 2020.03.28 |
MIME 유형으로 인해 스타일 시트가로드되지 않았습니다. (0) | 2020.03.27 |
@PostConstruct를 사용하는 이유는 무엇입니까? (0) | 2020.03.27 |
백 스페이스 키가 다시 탐색되지 않도록하려면 어떻게해야합니까? (0) | 2020.03.27 |