>  기사  >  웹 프론트엔드  >  자바스크립트의 exec 메소드를 사용하는 방법

자바스크립트의 exec 메소드를 사용하는 방법

藏色散人
藏色散人원래의
2021-04-01 15:32:042946검색

Javascript의 exec 메소드는 문자열에서 정규식 일치를 검색하는 데 사용됩니다. 사용법 구문은 "RegExpObject.exec(string)"이며 매개 변수 문자열은 검색할 문자열을 나타냅니다.

자바스크립트의 exec 메소드를 사용하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript exec() 메서드

exec() 메서드는 문자열에서 정규식 일치 항목을 검색하는 데 사용됩니다.

Syntax

RegExpObject.exec(string)

Parameters

string 필수입니다. 검색할 문자열입니다.

반환 값

일치하는 결과를 저장하는 배열을 반환합니다. 일치하는 항목이 없으면 반환 값은 null입니다.

설명

exec() 메서드는 매우 강력하며 test() 메서드와 정규식을 지원하는 String 개체의 메서드보다 사용하기가 더 복잡합니다.

exec()가 일치하는 텍스트를 찾으면 결과 배열을 반환합니다. 그렇지 않으면 null을 반환합니다. 이 배열의 0번째 요소는 정규식과 일치하는 텍스트이고, 첫 번째 요소는 RegExpObject의 첫 번째 하위 표현식(있는 경우)과 일치하는 텍스트이며, 두 번째 요소는 RegExpObject의 첫 번째 하위 표현식과 일치하는 텍스트입니다. 2개의 하위 표현식(있는 경우) 등입니다. 배열 요소 및 길이 속성 외에도 exec() 메서드는 두 가지 속성을 반환합니다. index 속성은 일치하는 텍스트의 첫 번째 문자 위치를 선언합니다. 입력 속성은 검색된 문자열을 저장합니다. 비전역 RegExp 객체의 exec() 메서드가 호출될 때 반환된 배열이 String.match() 메서드에서 반환된 배열과 동일하다는 것을 알 수 있습니다.

그러나 RegExpObject가 전역 정규 표현식인 경우 exec()의 동작은 좀 더 복잡합니다. RegExpObject의 lastIndex 속성에 지정된 문자에서 문자열 검색을 시작합니다. exec()는 표현식과 일치하는 텍스트를 찾으면 RegExpObject의 lastIndex 속성을 일치 후 일치하는 텍스트의 마지막 문자 옆 위치로 설정합니다. 이는 exec() 메서드를 반복적으로 호출하여 문자열에서 일치하는 모든 텍스트를 반복할 수 있음을 의미합니다. exec()가 더 이상 일치하는 텍스트를 찾지 못하면 null을 반환하고 lastIndex 속성을 0으로 재설정합니다.

【추천 학습: js 기본 튜토리얼

팁 및 메모

중요: 문자열에서 패턴 일치를 완료한 후 새 문자열 검색을 시작하려면 lastIndex 속성을 0으로 설정하여 수동으로 재설정해야 합니다.

팁: RegExpObject가 전역인지 여부에 관계없이 exec()는 반환되는 배열에 전체 세부 정보를 추가합니다. 이것이 exec()가 전역 모드에서 훨씬 적은 정보를 반환하는 String.match()와 다른 점입니다. 따라서 루프에서 exec() 메서드를 반복적으로 호출하는 것이 전역 패턴에 대한 완전한 패턴 일치 정보를 얻는 유일한 방법이라고 말할 수 있습니다.

이 예에서는 문자열:

<script type="text/javascript">
var str = "Visit W3School"; 
var patt = new RegExp("W3School","g");
var result;
while ((result = patt.exec(str)) != null)  {
  document.write(result);
  document.write("<br />");
  document.write(patt.lastIndex);
 }
</script>

출력:

W3School
14
에서 W3School을 전체적으로 검색합니다.

위 내용은 자바스크립트의 exec 메소드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.