JavaScript에서 Negative Lookbehind를 구현하는 방법
JavaScript는 기본적으로 Negative Lookbehind를 지원하지 않으므로 다음과 같은 문자열과 일치하는 정규식 생성을 방해합니다. 특정 문자로 시작하지 마십시오.
해결책 Lookbehind Assertions(2018년 이후)
2018년에 JavaScript는 긍정적 및 부정적 Lookbehind를 모두 허용하는 Lookbehind 주장을 도입했습니다.
예를 들어 다음 정규 표현식은 'jim' 또는 'm'에는 'm' 문자가 있지만 'jam':
(?<!([abcdefg]))m
2018년 이전 솔루션
2018년 이전의 한 가지 해결 방법은 입력 문자열을 반전하고 반전된 정규식과 일치시킨 다음 성냥. 이 프로세스는 다음과 같이 구현할 수 있습니다.
const reverse = s => s.split('').reverse().join(''); const test = (stringToTests, reversedRegexp) => stringToTests .map(reverse) .forEach((s,i) => { const match = reversedRegexp.test(s); console.log(stringToTests[i], match, 'token:', match ? reverse(reversedRegexp.exec(s)[0]) : 'Ø'); });<p><strong>예</strong></p> <p>사용법을 설명하려면:</p> <ul><li>에 언급된 초기 질문에 대해 문맥상 다음 정규식은 'jim' 또는 'm'의 'm'과 일치하지만 일치하지 않습니다. 'jam':</li></ul> <pre class="brush:php;toolbar:false">test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/)
test(['max-height', 'line-height'], /thgieh(?!(-enil))/)
위 내용은 JavaScript Regex에서 Negative Lookbehind를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!