PHP preg_replace到JavaScript | BB代码

时间:2012-06-21 14:53:37

标签: javascript regex bbcode

我在 PHP

中有正则表达式模式
$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

1 个答案:

答案 0 :(得分:2)

您需要在i之后添加g以使正则表达式不区分大小写。

此外,JavaScript不支持“多行”修饰符。相反,您需要将.替换为[\d\D]