如何折叠HTML空格?

时间:2014-10-04 10:50:16

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

主持人:在你投票结束这个问题之前,请问问自己:“我是否投票结束此事,因为其他人之前做过,或者因为它真的不是一个有效的问题?” < / p>

我正在使用Sanitize来处理用户生成的内容。它是“放松”选项的变体,有时会在排毒后以<div><span><br/></span>&nbsp;<span><br/></span> </div>之类的内容结束,这会产生不必要的空白。

如果有任何换行符,如何将这样的内容一般转换为只有一个换行符,如果只有空标签,那么这些内容只是一无所获?

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

1 个答案:

答案 0 :(得分:1)

您可以采用最简单的路线,并gsub替换您知道会产生不必要的空白区域的模式。根据您正在使用的WYSIWYG编辑器,输出可能真的是任何东西。可能没有预先解决的解决方案。最后,你只需做这样的事情:

即,my_string.gsub /(<div><span><br\/><\/span>&nbsp;<span><br\/><\/span>( )+<\/div>)+/, ''

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

然后可能还有一个HTML&gt;纯文本,纯文本&gt; HTML转换器在那里。根据允许的HTML元素/属性的复杂性,您可以执行以下操作:

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

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