RegExp 객체 인스턴스의 lastIndex 속성

2527 단어 RegExp
각 RegExp 객체의 인스턴스에는 검색된 문자열에서 다음에 성공적으로 일치하는 시작 위치("마지막 일치 후 위치, 한 문자열에서 여러 번 일치할 수 있음")로 설명된 lastIndex 속성이 있으며, 기본값은 0입니다.lastIndex 속성은 RegExp 대상의 exec와test 방법에 의해 수정되었습니다.그리고 그것은 쓸 수 있는 것이다.lastIndex의 값은 일치하는 하위 문자열의 마지막 문자와 전체 문자열의 인덱스에 1을 더하는 것과 같습니다.

var re = /[A-Z]/;     // 
var str = "Hello,World!!!";
alert(re.lastIndex);//0
var arr = re.exec(str);   //exec , re lastIndex 
alert(re.lastIndex);//1
arr = re.exec(str);
alert(re.lastIndex);//1
arr = re.exec(str);
alert(re.lastIndex);//1

re = /[A-Z]/g;   // , 。
alert(re.lastIndex);//0
arr = re.exec(str);
alert(re.lastIndex);//1
arr = re.exec(str);
alert(re.lastIndex);//7 
arr = re.exec(str);
alert(re.lastIndex);//0 
arr = re.exec(str);
alert(re.lastIndex);//1 

일치에 실패하면 (뒤에 일치하지 않음), exec를 실행하면 lastIndex를 0 (시작 위치) 으로 설정합니다.

var re = /\d/;  //var re = /\d/g; 
var str = "Hello,World!!!";
alert(re.lastIndex);//0 
var arr = re.exec(str);
alert(re.lastIndex);//0

lastIndex 값이 설정된 경우
(1) 전문 일치 g를 지정하면 exec를 실행하는 등 방법은 지정한 lastIndex 위치부터 일치하고, 일치하지 않으면 lastIndex=0, exec 등의 방법을 실행할 때 0부터 일치하며, 일치하지 않으면 lastIndex=0, 일치하지 않으면 문자열이 정확한 일치가 없고, 일치하지 않으면 lastIndex는 일치하는 문자의 마지막 색인에 1을 추가하는 것과 같다.만약 exec 등의 방법을 계속 집행한다면 그것은 순환하는 과정이다.
(2) 전문 매칭 g가 지정되지 않으면 exec 등 방법을 실행할 때마다 문자열의 시작 위치(즉lastIndex=0의 위치)에서 매칭을 시작하고 매칭에 실패하면lastIndex=0, 매칭에 성공하면lastIndex는 매칭 문자의 마지막 문자 인덱스에 1을 추가합니다.

var re = /[A-Z]/;
var str = "Hello,World!!!";
alert(re.lastIndex);//0
re.lastIndex=2;
alert(re.lastIndex);//2
var arr = re.exec(str);
alert(re.lastIndex);//1
arr = re.exec(str);
alert(re.lastIndex);//1
arr = re.exec(str);
alert(re.lastIndex);//1

var re = /[A-Z]/g;     // 
var str = "Hello,World!!!";
alert(re.lastIndex);//0
re.lastIndex=2;
alert(re.lastIndex);//2
var arr = re.exec(str);
alert(re.lastIndex);//7
arr = re.exec(str);
alert(re.lastIndex);//0
arr = re.exec(str);
alert(re.lastIndex);//1
arr = re.exec(str);
alert(re.lastIndex);//7

요약: exec 등 방법을 실행할 때 실패한 lastIndex=0과 일치하면전체 텍스트 일치 표지 g가 없으면 몇 번을 일치해도 lastIndex는 같고 전체 텍스트 일치 표지 g가 있으면 lastIndex는 하위 문자열의 마지막 문자와 일치하며 전체 문자열의 색인에 1을 더하고 순서대로 진행하며 0이 일치하지 않은 것을 알고 다음 순환에 들어갑니다.

좋은 웹페이지 즐겨찾기