2011-05-25 63 views
5

我正在尋找一個Javascript或PHP中的BBCode解析器,而無需使用正則表達式。有人可以給我一個好的建議嗎?沒有正則表達式的BBCode解析器?

+2

你爲什麼要避開正則表達式? (速度?) – tofutim 2011-05-25 17:38:39

+3

因爲我不只是想替換標籤,我還想對標籤之間的內容做一點點處理。你有什麼建議嗎? – Teiv 2011-05-25 18:11:54

+0

「我也想對標籤之間的內容做一點點調整,''preg_replace_callback()'對此非常有用。如果你能給我們一個你想要做什麼的可靠例子,我們可以給你更具體的建議。 – 2011-05-26 22:10:51

回答

6

建議使用正則表達式。

其他解決方案:

function bb_parse($str) 
{ 
    return str_replace(array('[b]', '[/b]'), array('<strong>', '</strong>'), $str); 
} 

這可以打破因接錯結束標籤解析可以結束了內容被包裹着的HTML標記,而不關閉。

+0

Ehm,BB是一種遞歸格式,就像HTML一樣。因此,我援引小馬:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – 2012-04-20 08:40:29

1

Zend的解析器可能是你在找什麼http://framework.zend.com/manual/en/zend.markup.parsers.html

不幸的是,我發現它是最實用的功能的我評估過的BBCode解析器:當遇到格式錯誤的標記([b] asdf [/ wops I forgot to close my tag)時,它傾向於在第一個格式錯誤的標記之後丟棄所有內容。其他bbcode解析器在簡單地忽略壞標記方面做得更好。

0

我最近寫在JavaScript中的bbcode解析器。

它可以做什麼:

  1. 轉換BB碼字符串HTML字符串;
  2. 將HTML元素轉換爲BBCode字符串;
  3. 自動糾正BBCode字符串;

檢查演示:UBBParser