RegExp.$1, …, RegExp.$9

지원이 중단되었습니다: 이 기능은 더 이상 권장되지 않습니다. 일부 브라우저에서는 아직 지원할 수 있지만 관련 웹 표준에서 이미 제거되었거나 제거 과정에 있는 경우가 있으며, 호환성을 위해 유지되고 있을 수 있습니다. 사용을 피하고 가능하다면 기존 코드를 업데이트하세요. 결정을 지원할 하단의 호환성 표를 확인하세요. 이 기능은 언제든지 작동을 중단할 수 있음을 유의하세요.

참고 : 마지막 일치 상태를 전역적으로 노출하는 모든 RegExp 정적 속성은 더 이상 사용되지 않습니다. 자세한 내용은 더 이상 사용되지 않는 RegExp 기능을 참고하세요.

RegExp.$1, …, RegExp.$9 정적 접근자 속성은 괄호 안의 하위 문자열 일치 항목을 반환합니다.

설명

$1$9RegExp의 정적 속성이기 때문에, 생성한 RegExp 객체의 속성으로 사용하는 것보다는 항상RegExp.$1, RegExp.$2 등으로 사용해야 합니다.

$1, …, $9의 값은 RegExp(RegExp 하위 클래스 제외) 인스턴스가 일치에 성공할 때마다 갱신됩니다. 일치하는 항목이 없거나 마지막 일치가 대응되는 캡쳐 그룹이 없으면 각각의 속성은 빈 문자열입니다. 각각의 속성의 설정 접근자는 undefined이므로 이 속성을 직접 변경할 수 없습니다.

괄호로 묶을 수 있는 하위 문자열의 개수는 제한이 없지만 RegExp 객체는 처음 9개만 보유할 수 있습니다. 반환된 배열의 인덱스를 통해 괄호로 묶인 모든 하위 문자열에 접근할 수 있습니다.

$1, …, $9String.prototype.replace()의 대체 문자열에도 사용할 수 있지만, 이는 RegExp.$n 레거시 속성과는 관련이 없습니다.

예제

RegExp.prototype.test()와 함께 $n 사용하기

아래 스크립트는 일반적인 문자열 내에서 숫자를 잡아내기 위해 RegExp.prototype.test() 메서드를 사용합니다.

js
const str = "Test 24";
const number = /(\d+)/.test(str) ? RegExp.$1 : "0";
number; // "24"

re.test(str) 호출과 RegExp.$n 속성 사이에 다른 정규식을 사용하는 작업은 부작용이 있을 수 있습니다. 이러한 특수 속성 접근은 즉시 수행해야 하며, 그렇지 않으면 예상치 못한 결과가 발생할 수 있다는 점을 주의하시기 바랍니다.

명세서

Specification
Legacy RegExp features
# additional-properties-of-the-regexp-constructor

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
RegExp.$1-$9
Deprecated

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Deprecated. Not for use in new websites.

같이 보기