【问题标题】:PHP preg_replace to JavaScript | BBCodePHP preg_replace 到 JavaScript | BB码
【发布时间】:2012-06-21 14:53:36
【问题描述】:

我在 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

【问题讨论】:

  • 什么是body - 字符串或 DOM 对象?

标签: javascript regex bbcode


【解决方案1】:

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

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

【讨论】:

  • /s 实际上称为单行修饰符。 )
  • 我编辑了这篇文章。它不适用于多个代码:/ 编辑:我明白了,如果我不替换 . (点)它有效。
  • * 之后添加?。这将使它一次处理一张图像。
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 2011-10-28
  • 1970-01-01
相关资源
最近更新 更多