IT

정규식과 일치하는 문자열인지 확인하기위한 regex.test VS string.match

lottoking 2020. 3. 27. 08:14
반응형

정규식과 일치하는 문자열인지 확인하기위한 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를 추적하기 때문입니다.

참고 URL : https://stackoverflow.com/questions/10940137/regex-test-vs-string-match-to-know-if-a-string-matches-a-regular-expression

반응형