programing

regex.test V.S string.match를 실행하여 문자열이 정규 표현과 일치하는지 확인합니다.

itsource 2022. 9. 21. 22:05
반응형

regex.test V.S string.match를 실행하여 문자열이 정규 표현과 일치하는지 확인합니다.

여러 번 그 끈을 사용하고 있다.match문자열이 정규 표현과 일치하는지 여부를 확인하는 함수입니다.

if(str.match(/{regex}/))

이 사이에 어떤 차이가 있습니까?

if (/{regex}/.test(str))

그들은 같은 결과를 주는 것 같습니까?

기본 사용법

먼저 각 함수의 기능을 살펴보겠습니다.

regexObject.test(String)

정규 표현과 지정된 문자열 간의 일치 검색을 수행합니다.true 또는 false를 반환합니다.

string.match ( RegExp )

문자열을 정규 표현과 대조할 때 일치 항목을 검색하기 위해 사용됩니다.일치하는 배열을 반환합니다.null없는 경우.

부터null까지 평가하다.false,

if ( string.match(regex) ) {
  // There was a match.
} else {
  // No match.
} 

성능

퍼포먼스에 차이가 있나요?

, MDN 사이트에서 다음과 같은 짧은 메모를 발견했습니다.

문자열이 정규 표현 regexp와 일치하는지 여부를 확인해야 할 경우 regexp.test(string)를 사용합니다.

차이가 큰가요?

다시 한 번 대답은 '그렇다'입니다!jsPerf를 조합하면 브라우저에 따라 30%~60%의 차이가 납니다.

test vs match | 퍼포먼스 테스트

결론

사용하다.test더 빠른 부울 체크를 원할 경우.사용하다.match를 사용할 때 모든 일치 항목을 검색하다g글로벌 플래그

regexp의 글로벌플래그를 고려하는 것을 잊지 마세요.

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-v-s-string-match-to-know-if-a-string-matches-a-regular-expression

반응형