首頁 >web前端 >js教程 >如何在 JavaScript 正規表示式中模擬負向後尋找?

如何在 JavaScript 正規表示式中模擬負向後尋找?

Barbara Streisand
Barbara Streisand原創
2024-12-14 15:48:11635瀏覽

How Can I Simulate Negative Lookbehind in JavaScript Regular Expressions?

負向後查找的JavaScript 等效項

負向後查找,匹配不以特定字符集開頭的字符串,不直接支援JavaScript 正規表示式。但是,還有其他方法可以實現類似的結果。

正向先行與字串反轉

由於JavaScript 支援正向先行(?=),因此一種方法涉及:

  1. 反轉輸入字串。
  2. 使用具有正向前瞻性的反向正規表示式。
  3. 反轉並重新格式化

範例:

const reverse = s => s.split('').reverse().join('');
const regexp = /m(?!([abcdefg]))/;

test(['jim', 'm', 'jam'], regexp);

function test(strings, regexp) {
  strings.map(reverse).forEach((s, i) => {
    match = regexp.test(s);
    console.log(strings[i], match, 'Token: ', match ? reverse(regexp.exec(s)[0]) : 'Ø');
  });
}

結果:

jim true Token: m
m true Token: m
jam false Token: Ø

後向斷言支持(自2018)

2018年,後向斷言(包括負後向斷言)成為 ECMAScript 語言規範的一部分。它們可以如下使用:

負向回顧:

(?<!...)

正向向後找出:

(?<=...)

範例:

符合「max-height」但不符"line-height":

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

結果:

max-height true Token: height
line-height false Token: Ø
結果:

以上是如何在 JavaScript 正規表示式中模擬負向後尋找?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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