4

我需要在服务器端处理“脏”的 html 数据。当我在服务器端使用 Node.JS 和 jQuery 时,我可以使用 JS 和 jQuery DOM-parser 的所有功能来处理我的 html 内容。

“脏”数据意味着以下内容:

<br ><br />Home <a href="http://habrahabr.ru/post/169139/"> gamy code </ a> 
<br>
Technique: <a href="http://habrahabr.ru/post/173903/"> Preparation methods </ a> <br>
<br>
In continuation, the technique based on the book Refactoring Refactoring <a href="http://www.ozon.ru/context/detail/id/1308678/">. Improvement of existing code by Martin Fowler. </ A> <br>
  <a href="http://habrahabr.ru/post/174779/#habracut"> Read more → </ a>

因此,它可能在开头/中间有几个 br,空 p 等。我尝试使用

$('*:empty').remove();

但是,如果帖子开始形成

Home <a href="http://habrahabr.ru/post/169139/"> gamy code </ a> <br>

"<a href="http://habrahabr..." 之前的所有内容都被删除。

那么,是否有任何可靠的生产就绪的基于 JS/jQuery 的解决方案来美化 html 数据以删除开头的空标签/中间的双 br/p 等?

ps 不想使用简单的正则表达式,因为在如此肮脏的内容中可能会发生很多不同的情况

4

2 回答 2

3

有一个名为 jQuery-Clean 的插件在这种情况下可能会有所帮助:https ://code.google.com/p/jquery-clean/

该插件执行以下操作:

  • 修复自闭标签
  • 小写标签
  • 移除非标准属性
  • 删除内联样式属性
  • 删除内联事件属性
  • 可选地删除其他属性
  • 整理不必要的空白和新行
  • 删除评论
  • 删除专有的文字格式标签
  • 替换标签,例如 i=>em
  • 可选地保留 css 类
  • html格式和缩进

不幸的是,我找不到其他任何东西。我觉得我必须说可能有必要编写一些正则表达式来完成您正在寻找的内容。

于 2013-04-12T23:49:03.250 回答
0

总的来说,这里有一个叫做js-beautify。这将美化 Javascript、HTML、CSS 和 JSON。

于 2013-04-12T23:45:28.247 回答