負向後查找的JavaScript 等效項
負向後查找,匹配不以特定字符集開頭的字符串,不直接支援JavaScript 正規表示式。但是,還有其他方法可以實現類似的結果。
正向先行與字串反轉
由於JavaScript 支援正向先行(?=),因此一種方法涉及:
範例:
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中文網其他相關文章!