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 중국어 웹사이트의 기타 관련 기사를 참조하세요!