我正在使用方法 strip_tags
从我的字符串中删除所有标签,但是在删除一些缺少空格的文本之后,尤其是在 1 个标签结束和另一个标签开始的地方。有什么办法可以将空格插入标签被删除的地方吗?寻找前任。下面
str
=> "<span>Class GOesHere</span><div>SomeExtra Tag</div>"
helper.strip_tags(str)
=> "Class GOesHereSomeExtra Tag"
最佳答案
我建议解析 HTML 并提取文本。 Nokogiri ,一个非常知名的 gem 应该可以帮助轻松解决这个问题:
require 'nokogiri'
=> false
> str = "<span>Class GOesHere</span><div>SomeExtra Tag</div>"
=> "<span>Class GOesHere</span><div>SomeExtra Tag</div>"
> Nokogiri::HTML(str).text
=> "Class GOesHereSomeExtra Tag"
更新:
这将搜索 html 中的所有文本节点并映射文本内容。结果数组与空格分隔符连接:
> Nokogiri::HTML(str).xpath('//text()').map(&:text).join(' ')
=> "Class GOesHere SomeExtra Tag"
关于html - 用空格替换 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449761/