아래의 모든 세 줄은 ARRAY에 2 개의 결과가 반환되어야한다는 것을 이해합니다. 그러나 RegExp는 문자열에서 정규 표현식이 몇 번 반복 되더라도 결과를 1 개만 반환합니다.Javascript Regexp가 전역 결과를 반환하지 않음
이유를 설명 할 수 있습니까? RegExp에서 전 세계적인 결과를 얻을 수있는 방법을 제안하십시오.
//INTPUT:
console.log(new RegExp("New York", "gi").exec("New York New York"));
//OUTPUT:
["New York"]
//INTPUT:
console.log(new RegExp(/New York/gi).exec("New York New York"));
//OUTPUT:
["New York"]
//INTPUT:
console.log("New York New York".match(/New York/gi));
//OUTPUT:
["New York", "New York"]
정말로 흥미 롭 것은 당신이'('뉴욕 뉴욕') .match을 (시도하는 경우/:
는 RegExp.exec 실제로 위치를 기억하고, 후속 호출에 다음 결과를 반환 New York/gi)'그것은 단지 1 개의 결과를 가져올 것이고 (다른 방식으로 필요할 때) [그것을 반복하는 것 외에] (http : // stackoverflow를 제외하고) 나는 더 좋은 방법을 생각할 수 없다. com/questions/42328875/javascript-regex-to-remove-all-numbers-specific-lenght-or-do-a-persistent)! : – cregox