我需要从正在粘贴到html textarea中的字符串中删除空段落。我有这个作为正则表达式。
var reg = /\<p( [a-zA-Z]*=((\"[^\"]*\")|(\'[^\']*\')))*\>\<\/p\>/g;
它运作正常。但是,一些被粘贴的数据包含看起来像这样的段落。
<p><b></b></p>
因此正则表达式不起作用 - 因为段落虽然不包含实际文本,但确实包含html标记。
现在有人可以告诉我修改我的正则表达式,这样它不仅会替换没有空字符串的内容的段落,而且还会替换唯一内容为html标记的段落。
目前这样的文字。
<p style="margin:0px;"></p>
<p>Fred</p>
<p style="margin-left:10px;"></p>
<p><b></b></p>
<p>Jim</p>
正在修改,因此它变为
<p>Fred></p>
<p><b></b></p>
<p>Jim</p>
我需要它成为
<p>Fred</p>
<p>Jim</p>
答案 0 :(得分:0)
你可以试试这个:
<p[^>]*>(?:\s*<(\w+)>\s*<\/\1>\s*|\s*)<\/p>
并替换为空
const regex = /<p[^>]*>(?:\s*<(\w+)>\s*<\/\1>\s*|\s*)<\/p>/g;
const str = `<p style="margin:0px;"></p>
<p>Fred</p>
<p style="margin-left:10px;"></p>
<p><b></b></p>
<p>Jim</p>`;
const subst = ``;
const result = str.replace(regex, subst);
console.log(result);