> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 Regex Lookbehind 기능을 구현하는 방법은 무엇입니까?

JavaScript에서 Regex Lookbehind 기능을 구현하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-13 12:41:02
원래의
686명이 탐색했습니다.

How to Achieve Regex Lookbehind Functionality in JavaScript?

JavaScript의 Regex Lookbehind 대안

문제:

JavaScript는 기본 메서드를 제공하지 않습니다. 정규식 뒷모습을 위해. 결과적으로, 다른 구현에서 효과적으로 작동하는 다음 정규식은 JavaScript에서 실패합니다.

(?<!filename)\.js$
로그인 후 복사

이 정규식은 문자열 끝의 ".js" 확장자를 일치시키는 것을 목표로 하지만, 일치하는 경우에만 해당됩니다. "filename.js"가 앞에 오지 않습니다.

해결책:

시뮬레이트하는 한 가지 접근 방식 JavaScript의 정규식 뒤돌아보기에는 도우미 기능 사용이 포함됩니다. 그러나 보다 간단한 대체 정규식은 원하는 결과를 얻습니다.

^(?:(?!filename.js$).)*.js$
로그인 후 복사

설명:

이 정규식은 문자열의 각 문자가 올바른지 확인하기 위해 부정 예측을 사용합니다. "filename.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$
로그인 후 복사

이 정규식은 전체 문자열에 "filename.js"가 포함되어서는 안 되며 이후에 어떤 문자열과도 일치해야 한다고 주장합니다. ".js"로 끝나는 문자열

위 내용은 JavaScript에서 Regex Lookbehind 기능을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿