새로운 환경에서 Javascript는 ( ES2018 기준 ) 뒤쳐 졌으므로 이러한 상황에서 그룹을 완전히 피할 수 있습니다. 오히려, lookbehind 당신이 캡처 된 그룹 전에오고, 내다보기 위해 후 제공하고 교체하는 것에 대해 단지 !NEW_ID!
:
const str = 'name="some_text_0_some_text"';
console.log(
str.replace(/(?<=name="\w+)\d+(?=\w+")/, '!NEW_ID!')
);
이 방법을 사용하면 전체 일치 항목 만 교체해야합니다.
(?<=name="\w+)
-Lookbehind for name"
다음에 단어 문자가 있습니다 ( 행운 적으로 lookbehinds는 자바 스크립트에서 너비를 고정 할 필요가 없습니다!).
\d+
-하나 이상의 숫자와 일치-패턴의 유일한 부분은 둘러보기에없고 문자열의 유일한 부분은 결과와 일치합니다.
(?=\w+")
-단어 문자에 대한 Lookahead 다음에 "
`
뒤돌아보기는 새로운 것임을 명심하십시오. 최신 버전의 V8 (Chrome, Opera 및 Node 포함)에서는 작동하지만 다른 환경 에서는 아직까지는 그렇지 않습니다. 따라서 Node 및 자체 브라우저에서 lookbehind를 안정적으로 사용할 수 있지만 (최신 버전의 V8에서 실행되는 경우) 공용 클라이언트와 같이 임의의 클라이언트에서 아직 충분히 지원되지 않습니다.