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