好的,所以我有一个引用设计,它看起来像这样:
<div id="post_IDHERE">
<span class="quote">
<span class="quote_author">An author:</span><br>
<span class="quote_text">Some text quoted</span>
</span>
Some comment on the quote.
</div>
我的PHP代码将[quote]标签转换为已发布的^引用设计。
$data['comment'] = preg_replace("/\[quote=(.*?)\](.*?)\[\/quote\]/", "<span class='quote'><span class='quote_author'>Skriven av $1:</span><br><span class='quote_text'>\"$2\"</span></span><br><br>", $data['comment']);
我有两个问题。一个是我的引用JS函数,但我将从我的PHP(?)问题开始。
基本上,如果$ data [&#39; comment&#39;]包含:
[quote=test]test[/quote]
test quote
它会发布:
但张贴:
[quote=test][quote=test]test1[/quote]test2[/quote]
test3
文章:
所以我认为我的正则表达式并没有按我的意愿行事?
这是一个显示嵌套注释的JSfiddle: http://jsfiddle.net/n74djvq2/7/
答案 0 :(得分:0)
您的正则表达式只查找[quote=*] * [/quote]
模式,因此它会在它看到的第一个[/quote]
结束。
如果你真的需要嵌套引号的功能,你应该寻找递归正则表达式模式,而不仅仅是简单版本。
或者如果您觉得困难,可以使用函数而不是正则表达式。