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

时间:2014-12-03 21:19:56

标签: javascript html regex trim removing-whitespace

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

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

我只需要摆脱所有不需要的“领先”标签,空格和回车 输出应如下:

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

我尝试在javascript中使用trim()函数,但它只删除了前导空格。我无法删除标签。无论如何,这可以使用RegExp在javascript中实现吗? 在此先感谢

1 个答案:

答案 0 :(得分:1)

如果您确定自己的p标签只有示例中没有属性,那么以下内容应该有效:

&#13;
&#13;
var strs = [
    "\n\n  <p>&nbsp; </p>\n\n<p>&nbsp;</p>\n\n<p>This is a simple document</p>",
    "<p></p>\n\n<p>&nbsp;</p>\n\n<p>Testing data</p>",
    "<p></p>\n\n<p>&nbsp;</p>\n\n<p>This is my plan</p>\n\n<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, ''));
}
&#13;
&#13;
&#13;