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

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

Mary-Kate Olsen
發布: 2024-12-26 16:27:13
原創
702 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板