在 JavaScript 中實現負向後查找功能
負向後查找斷言允許匹配不以特定字符集開頭的字符串。儘管 JavaScript 中缺乏對負向後查找的明確支持,但仍有可行的替代方案。
從 2018 年起,Lookbehind 斷言已合併到 ECMAScript 規範中:
// Positive lookbehind: (?<=...) // Negative lookbehind: (?<!...)
Pre -2018年臨近
或者,如果負向後查找不可用,請考慮以下方法:
例如:
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中文網其他相關文章!