2012-06-21 101 views
1

我正則表達式模式在PHPPHP preg_replace to JavaScript | BB代碼

$s = preg_replace("#\[URL\=(.*)\](.*)\[\/URL\]#Ui", "<a href=\"$1\" target=\"_blank\">$2</a>", $s); 
$s = preg_replace("#\[CODE\=(.*)\](.*)\[\/CODE\]#Uis", "<pre class=\"brush: $1\">$2</pre>", $s); 
$s = preg_replace("#\[URL\](.*)\[\/URL\]#Ui", "<a href=\"$1\" target=\"_blank\">$1</a>", $s); 
$s = preg_replace("#\[IMG\](.*)\[\/IMG\]#Ui", "<p align='center'><img src=\"$1\" border=\"0\" /></p>", $s); 

我怎麼能轉換那些的JavaScript

我試過這個組合,但它不工作(?)

body.replace(/\[URL\=(.*)\](.*)\[\/URL\]/g, '<a href=\"$1\" target=\"_blank\">$2</a>'); 

@Kolink 這是工作的單個圖像

body = body.replace(/\[IMG\]([\d\D]*)\[\/IMG\]/gi, '<p align="center"><img src="$1" border="0" /></p>'); 

,但如果我添加第二圖像這一切崩潰因爲在這個例子中,因此

[IMG]http://www.someimage.com/123.jpg[/IMG]Test 
[IMG]http://www.someimage.com/456.jpg[/IMG] 

比賽將是

http://www.someimage.com/123.jpg[/IMG]Test[IMG]http://www.someimage.com/456.jpg 
+0

什麼是'body' - 一個字符串或DOM對象? – raina77ow

+0

這是一個字符串。 – svenkapudija

回答

2

您需要g後加入i使正則表達式不區分大小寫。

此外,JavaScript不支持「多行」修飾符。相反,您需要將.替換爲[\d\D]之類的內容。

+0

'/ s'實際上被稱爲單行修飾符。 ) – raina77ow

+0

我編輯了這篇文章。它不適用於多個代碼:/編輯:我知道了,如果我不替換。 (點)它的作品。 – svenkapudija

+0

在'*'後加'?'。這將使它一次處理一個圖像。 –