내가자바 스크립트
var myRe = /ab*/g;
var str = 'abbcdefabh';
var myArray;
while ((myArray = myRe.exec(str)) !== null) { //confused by this line
var msg = 'Found ' + myArray[0] + '. ';
msg += 'Next match starts at ' + myRe.lastIndex;
console.log(msg);
}
내가 while 루프 라인으로 혼란 스러워요 MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec에서 다음 코드를 해석하는 데 문제가 일치합니다. 그것은 문자열 str에 exec를 호출 한 결과로 myArray를 설정하는 것으로 보이며 null이 아닌 경우 계속 진행된다고 말합니다.
내가 얻지 못한 것은 프로그램에서 일치 항목이있는 마지막 색인에서 검색을 시작한다는 것을 알 수 있습니다. 나에게 이것은 무한 루프가되어야한다. b/c 배열의 다음 인덱스에서 검색을 시작하는 위치를 볼 수 없다.
또한 match를 사용하는 대신 여러 개의 일치 항목을 찾으려면 exec를 사용해야하는 이유가 있습니까? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match