Javascript正则表达式替换关闭和打开标记

时间:2011-07-06 10:53:40

标签: javascript regex tags replace

我意识到这必须是一个非常容易的正则表达式,但似乎无法解决它。我只需要搜索一个字符串:

</p><p>

并在它们之间添加一个逗号,如下所示:

</p>,<p>

忽略它不是很好的html,但它对我来说很有意义!

我尝试了这个,但似乎没有用:

str.replace(/<\/p><p>/g, "</p>,<p>");

有什么想法吗?谢谢:))

5 个答案:

答案 0 :(得分:2)

  

我尝试了这个,但似乎没有用:

     

str.replace(/<\/p><p>/g, "</p>,<p>");

replace 返回带有结果的新字符串,它不会修改您调用它的字符串。那就是:

    str = str.replace(/<\/p><p>/g, "</p>,<p>");
//  ^^^^^^

答案 1 :(得分:0)

这对我有用:

alert("Some </p><p> to replace".replace(/<\/p><p>/g, "</p>,<p>"));

答案 2 :(得分:0)

您的代码运行正常:http://jsfiddle.net/eBkhR/

答案 3 :(得分:0)

javascript中的字符串是不可变的。也就是说,不能修改字符串中的内容。因此,使用replace方法时,它无法替换内容,但只返回带有新内容的新字符串。您需要将新字符串存储在必需的变量中。

例如,

str = str.replace(/<\/p><p>/g, "</p>,<p>");

alert的答案将起作用,因为新字符串已传递给alert函数。字符串本身未被修改。

答案 4 :(得分:0)

我的错。它确实有效。我忘了每个p标签都有id,所以只需要搜索一下:

/<\/p><p/g

感谢所有的回复!