> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 부정적인 Lookbehind 어설션을 어떻게 시뮬레이션할 수 있습니까?

JavaScript에서 부정적인 Lookbehind 어설션을 어떻게 시뮬레이션할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-26 16:27:13
원래의
701명이 탐색했습니다.

How Can I Simulate Negative Lookbehind Assertions in JavaScript?

JavaScript에서 부정 Lookbehind 기능 달성

부정 Lookbehind 어설션을 사용하면 특정 문자 집합으로 시작하지 않는 문자열을 일치시킬 수 있습니다. JavaScript에는 부정적인 Lookbehind에 대한 명시적인 지원이 부족함에도 불구하고 실행 가능한 대안이 있습니다.

2018년부터 Lookbehind Assertions가 ECMAScript 사양에 통합되었습니다.

// Positive lookbehind:
(?<=...)

// Negative lookbehind:
(?<!...)
로그인 후 복사

Pre -2018 접근 방식

또는 부정적 후방 조사를 사용할 수 없는 경우 다음 접근 방식을 고려하세요.

  1. 입력 문자열을 반대로 바꿉니다.
  2. 역정규와의 대결 식.
  3. 결과 일치 항목을 되돌리고 형식을 다시 지정합니다.

예:

const reverse = (string) => {
  return string.split('').reverse().join('');
};

const test = (inputStrings, reversedRegex) => {
  inputStrings.map(reverse).forEach((reversedString, idx) => {
    const match = reversedRegex.test(reversedString);
    console.log(
      inputStrings[idx],
      match,
      'token:',
      match ? reverse(reversedRegex.exec(reversedString)[0]) : 'Ø'
    );
  });
};
로그인 후 복사

예 1 : "jim" 또는 "m"의 "m"과 일치하지만 일치하지 않는 경우 "jam":

test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/);
로그인 후 복사

출력:

jim true token: m
m true token: m
jam false token: Ø
로그인 후 복사

예 2: "max-height"와 일치하지만 일치하지 않음 "line-height":

test(['max-height', 'line-height'], /thgieh(?!(-enil))/);
로그인 후 복사

출력:

max-height true token: height
line-height false token: Ø
로그인 후 복사

위 내용은 JavaScript에서 부정적인 Lookbehind 어설션을 어떻게 시뮬레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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