所以我有一些JavaScript將BBCode轉換爲HTML,這似乎工作正常,但我有一個問題。BBCode正則表達式解析問題
這裏是其中的一個表達式是工作,我用的BB標記轉換[B]和[/ B],以<b>和</B >。
str = str.replace(/\[b\]((\s|\S)*?)\[\/b\]/ig, '<b>$1</b>');
這也轉換連續標籤。例如
並[b] STR1 [/ B] [B] STR2 [/ B]
變得
STR1STR2
哪很好;這就是我想要的。然而,當我嘗試匹配,像這樣
str = str.replace(/\[quote\]((\s|\S)*?)\[\/quote\]/ig, '<span class="quotebox">$1</span>');
其中str是
報價標籤[報價]巢1級[報價]巢2級了[/ quote] [/報價]
只有第一個標籤匹配和轉換,所以我將最終得到的輸出看起來像
鳥巢水平1 【引用】巢級別2
[/報價]
隨着報價框外最後一個引號標記 - 它應該被嵌套在其它一個內。幫幫我?
而且,如果是相關的,在quotebox類是如下
.quotebox {
邊界:1px的插圖黑色;
display:block;
margin-bottom:5px;
margin-top:5px;
padding:2px 2px 2px 4px;
}
奇怪的問題;你爲什麼要用Javascript(客戶端)進行轉換,以及你在做什麼轉換? – 2010-12-19 02:01:34
這就是爲什麼正則表達式*不能用於解析不規則語言的原因。 – 2010-12-19 02:05:28
我通過Greasemonkey腳本將它用作另一個站點的「預覽器」。它與你提問時的stackoverflow功能類似。 – sam 2010-12-19 02:06:43