首頁 >web前端 >js教程 >如何將多行內容與 JavaScript 正規表示式配對?

如何將多行內容與 JavaScript 正規表示式配對?

Patricia Arquette
Patricia Arquette原創
2024-10-28 20:02:02434瀏覽

How to Match Multiline Content with JavaScript Regular Expressions?

克服多行匹配的JavaScript 正規表示式邊界

使用JavaScript 正規表示式時,了解如何匹配跨多個行的內容變得至關重要線。考慮以下程式碼片段,嘗試提取其中包含換行符的 PRE 區塊:

<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // null</code>

預期結果是捕獲整個 PRE 區塊,但結果是空警報。為了修正這個問題,我們深入研究了多行匹配的複雜性。

'.|[rn]'策略

最初的方法是將.通配符以及與任何字元或換行符相符的表達式:(.|[rn ])。然而,這被證明是無效的。

啟示:[sS]

成功的關鍵在於使用 [sS] 而不是 。用於多行匹配。此字符類包含空白字符和非空白字符,有效解決了這個問題。

<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // <pre class="brush:php;toolbar:false">...<\/pre></code>

貪婪的微妙之處:'? '與 ''

另一個考慮因素與所使用的量詞有關。雖然 似乎是顯而易見的選擇,但它引入了不必要的貪婪。 '? '或 ' ? '確保匹配找到第一個匹配項,而不是最長的匹配項。

關於 [^]

同時 [^] 也可以用作多行點,根據另一篇文章中的評論,它已被棄用。因此,最好堅持使用[sS]。

以上是如何將多行內容與 JavaScript 正規表示式配對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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