2012-06-21 103 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

在'*'后加'?'。这将使它一次处理一个图像。 –