首頁 >web前端 >js教程 >如何在 JavaScript 中模擬否定後向斷言?

如何在 JavaScript 中模擬否定後向斷言?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-26 16:27:13700瀏覽

How Can I Simulate Negative Lookbehind Assertions in JavaScript?

在 JavaScript 中實現負向後查找功能

負向後查找斷言允許匹配不以特定字符集開頭的字符串。儘管 JavaScript 中缺乏對負向後查找的明確支持,但仍有可行的替代方案。

從 2018 年起,Lookbehind 斷言已合併到 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」但不符"行高":

test(['max-height', 'line-height'], /thgieh(?!(-enil))/);

輸出:

max-height true token: height
line-height false token: Ø

以上是如何在 JavaScript 中模擬否定後向斷言?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn