【发布时间】:2013-11-29 07:35:14
【问题描述】:
我在javascript中有一个多行字符串如下:
"<p> </p>
<p> </p>
<p> </p>
<p> </p>
"
我正在尝试删除<p> </p> 的额外实例,因此我正在尝试使用以下正则表达式。
var content = getContent() // This returns the string mentioned above.
content = content.replace(/(<p> <\/p>)+/g, "<p> <\/p>");
但这似乎不起作用。很可能是因为该字符串是多行字符串?我已经用单行字符串尝试了上面的正则表达式,它工作正常。在阅读了更多关于 javascript regex 的文档后,我意识到我们需要使用 m 修饰符来处理多行字符串。所以我将正则表达式更改为:
content = content.replace(/(<p> <\/p>)+/gm, "<p> <\/p>"); // note the `m` modifier
但它仍然不起作用。有什么线索吗?
【问题讨论】:
-
怎么不工作了?它在返回什么?看起来你也用自己替换了匹配项 (
replace(/(<p> <\/p>)+/gm, "<p> <\/p>");),我是不是遗漏了什么? -
@Rob 它返回相同的字符串,猜你错过了
+量词? -
呃,阅读您的问题后应该重新阅读标题。 :P
标签: javascript regex multiline