使用javascript正则表达式替换字符串中某些位置的任何内容

时间:2017-06-09 07:30:05

标签: javascript regex

我试图从字符串中删除空的所有段落标记,无论p标记中的样式属性是什么。我想删除所有这些,并用空字符串替换。

<p style="margin-left:0px"></p>
<p></p>
<p style="margin-left:1cm; margin-right:1cm"></p>

到目前为止,为了处理我遇到的一种情况,我正在这样做:

str = str.replace(/<p style=\"margin:0cm 0cm 10pt\"><\/p>/g,'')

在这种特殊情况下工作。如何编写它以删除

<p AnythingHereInThisTag></p>

并用空字符串替换它?

编辑 - 进一步回答以下问题 - 如果我这样做:

str = str.replace(/<p(.*)><\/p>/g,'')

它正在替换整个字符串,可能看起来像

<p>Hello</p><p>Some text in the middle</p><p>Goodbye</p>

需要查看每对

标签

2 个答案:

答案 0 :(得分:-1)

这样的东西?

str = 'asd<p style="margin-left:0px"></p><p></p><p style="margin-left:1cm; margin-right:1cm"></p>'
str.replace(/<p(.*)><\/p>/g,'') // "asd"

再次阅读问题,目前还不清楚是否只想删除

标签中的属性或标签。请澄清。

您可以阅读有关正则表达式here的更多信息。

答案 1 :(得分:-1)

替换任何没有字符"的charecter将正则表达式设为[^\"]

var reg=/\<p( [a-zA-Z]*=((\"[^\"]*\")|(\'[^\']*\')))*\>\<\/p\>/g;
console.log('<p style=\'margin:0cm 0cm 10pt\'></p>'.replace(reg,''));
console.log('<p style=\"margin:0cm 0cm 10pt\"></p>'.replace(reg,''));
console.log('<p style=\"margin:0cm 0cm 10pt\" class=\"test\"></p>'.replace(reg,''));
console.log('<p></p>'.replace(reg,''));