javascript - PHP preg_replace 到 JavaScript | BB代码

标签 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

最佳答案

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

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

关于javascript - PHP preg_replace 到 JavaScript | BB代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140844/

相关文章:

javascript - 如何使用 jquery 验证插件验证名称中带点的输入字段?

python - 正则表达式读取文件并返回Python文件内部匹配模式后的第一行

javascript - 如何创建仅匹配 1 或 2 的正则表达式

php - PECL bbcode 包构建失败

javascript - Jquery检测命令/自定义BBcode

php - 通过删除额外/冗余的格式化标签来清理 HTML

javascript - gcm Meteor 中的多重通知

javascript - Vue 选择的 Prop 不适用于 v-model

javascript - 在 JavaScript 条件语句中使用 Razor 语法

regex - Laravel 模式验证管道字符问题