【问题标题】:How to collapse HTML whitespace?如何折叠 HTML 空白?
【发布时间】:2014-10-05 07:17:49
【问题描述】:

主持人:在您投票结束这个问题之前,请先问问自己:“我投票结束这个问题是因为其他人之前做过,还是因为它真的不是一个有效的问题?”

我正在使用Sanitize 来处理用户生成的内容。它是“宽松”选项的变体,有时在清理后会出现<div><span><br/></span> <span><br/></span> </div> 之类的内容,这会产生不必要的空白。

如果有任何换行符,如何将这样的内容一般地转换为仅一个换行符,或者如果只有空标签,则如何转换为空?

输入内容可以是用户生成的任何内容。清理后出现的内容大多是干净、清理过的 HTML,但有时包含无用的空格,这会导致应该压缩的不必要的空白行。

【问题讨论】:

  • 它可以是任何东西,它是用户生成的。出来的大部分是经过净化的 HTML,但有时包含无用的空格,这会导致不必要的空白行,应该压缩。
  • 为什么票数接近?这对我来说似乎是一个很好的问题。如何以 HTML 感知的方式去除空格?
  • 因为很多人投票结束时其他人已经投票结束。 #Groupthink

标签: ruby ruby-on-rails-3 sanitization


【解决方案1】:

您可以采取最简单的方法,用gsub 替换您知道会产生不必要的空白的模式。输出实际上可以是任何东西,具体取决于您使用的 WYSIWYG 编辑器。可能没有预先装箱的解决方案。最后你只需要做这样的事情:

my_string.gsub /(<div><span><br\/><\/span> <span><br\/><\/span>( )+<\/div>)+/, ''

使用rubular.com 快速测试您的正则表达式。

然后也许还有一个 HTML > 纯文本,纯文本 > HTML 转换器。根据允许的 HTML 元素/属性的复杂性,您可以这样做:

1) 将 HTML 输入转换为纯文本格式
2)gsub/剥离输入
3) 转换回 HTML 格式

请记住,如果您允许 HTML 属性,它们可能会在转换中丢失...这需要测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 2013-10-08
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多