>  기사  >  웹 프론트엔드  >  Negative Lookahead는 JavaScript에서 Regex Lookbehind를 모방할 수 있습니까?

Negative Lookahead는 JavaScript에서 Regex Lookbehind를 모방할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-12 21:30:02551검색

Can Negative Lookahead Mimic Regex Lookbehind in JavaScript?

JavaScript의 부정 예측: Regex Lookbehind의 대안

질문:

Regex Lookbehind가 부족한 JavaScript에서는, 특정 조건을 제외하고 특정 패턴을 일치시키는 방법이 있습니까?

답변:

ECMAScript 2018 이전에는 JavaScript가 기본적으로 부정적인 LookBehind 어설션을 지원하지 않았습니다. 다음은 대체 접근 방식입니다.

^(?:(?!filename\.js$).)*\.js$

설명:

이 정규식은 문자열의 각 문자를 명시적으로 확인하여 뒤돌아보기를 시뮬레이션합니다. 뒤에 찾는 표현식("filename.js$")과 나머지 정규식(".js$")이 현재 문자에서 일치하지 않으면 해당 문자가 허용됩니다.

^                 # Start of string
(?:               # Try to match the following:
 (?!              # First assert that we can't match the following:
  filename\.js    # filename.js 
  $               # and end-of-string
 )                # End of negative lookahead
 .                # Match any character
)*                # Repeat as needed
\.js              # Match .js
$                 # End of string

그러나 그 이후로 더 간단한 대안이 등장했습니다.

^(?!.*filename\.js$).*\.js$

이 후자의 접근 방식은 모든 문자에 대한 미리보기를 확인하지 않기 때문에 더 효율적입니다.

^                 # Start of string
(?!               # Assert that we can't match the following:
 .*               # any string, 
  filename\.js    # followed by filename.js
  $               # and end-of-string
)                 # End of negative lookahead
.*                # Match any string
\.js              # Match .js
$                 # End of string

위 내용은 Negative Lookahead는 JavaScript에서 Regex Lookbehind를 모방할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.