首頁 > web前端 > js教程 > 主體

如何在 JavaScript 中實作正規表示式 Lookbehind 功能?

DDD
發布: 2024-11-13 12:41:02
原創
635 人瀏覽過

How to Achieve Regex Lookbehind Functionality in JavaScript?

JavaScript 中的正規表示式Lookbehind 替代方案

問題:

問題:
(?<!filename)\.js$
登入後複製

<script>Java本機方法用於正規表示式向後查找。因此,在其他實作中有效運行的以下正規表示式在JavaScript 中會失敗:</script>

此正規表示式旨在匹配字串末尾的「.js」副檔名,但前提是它是前面沒有「filename.js」。

解決方案:

^(?:(?!filename.js$).)*.js$
登入後複製

在 JavaScript 中模擬正規表示式後向尋找的一種方法涉及使用輔助函數。然而,一個更簡單的替代正規表示式可以實現所需的結果:

解釋:

^                 # Start of string
(?:               # Try to match the following:
 (?!              # First assert that we can't match the following:
  filename.js    # filename.js
  $               # and end-of-string
 )                # End of negative lookahead
 .                # Match any character
)*                # Repeat as needed
.js              # Match .js
$                 # End of string
登入後複製

此正規表示式採用負前瞻來驗證字符字串中的每個字元是否與字串末尾的表達式“filename.js”不符。只有這樣該字元才能匹配正規表示式。以下是正規表示式的細分:

改進的解決方案:

^(?!.*filename.js$).*\.js$
登入後複製

實現相同結果的更有效方法是使用以下正規表示式:

此正規表示式斷言整個字串不得包含“filename.js”,並隨後匹配任何以“.js”結尾的字串。

以上是如何在 JavaScript 中實作正規表示式 Lookbehind 功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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