使用正则表达式删除前导空格、回车符和不需要的标签



我目前正在使用CKEditor供用户编写文档。
通常,很少有用户倾向于从几个空格和两个新行开始,然后是实际内容。假设示例 html 看起来像这样:
不同的输入:

  • nn <p>&nbsp; </p>nn<p>&nbsp;</p>nn<p>This is a simple document</p>
  • <p></p>nn<p>&nbsp;</p>nn<p>Testing data</p>
  • <p></p>nn<p>&nbsp;</p>nn<p>This is my plan</p>nn<p>&nbsp;</p><b> Hi Hello</b>

我只需要删除所有不需要的"前导"标签、空格和回车符。
输出应如下所示:

  • <p>This is a simple document</p>
  • <p>Testing data</p>
  • <p>This is my plan</p>nn<p>&nbsp;</p><b> Hi Hello</b>

我尝试在javascript中使用trim()函数,但它只是删除了前导空格。我无法删除标签。无论如何,这可以使用正则表达式在javascript中实现吗?
提前致谢

如果您

确定只会像示例中那样p没有属性的标签,那么以下内容应该可以工作:

var strs = [
    "nn  <p>&nbsp; </p>nn<p>&nbsp;</p>nn<p>This is a simple document</p>",
    "<p></p>nn<p>&nbsp;</p>nn<p>Testing data</p>",
    "<p></p>nn<p>&nbsp;</p>nn<p>This is my plan</p>nn<p>&nbsp;</p><b> Hi Hello</b>"
];
var re = /^((&nbsp;)|s|(<p>(&nbsp;|s)*</p>))+/i;
for(var i = 0; i < strs.length; i++){
    console.log('------------');
    console.log(i, strs[i].replace(re, ''));
}

最新更新