def wrap(content)
require "Nokogiri"
doc = Nokogiri::HTML.fragment("<div>"+content+"</div>")
chunks = doc.at("div").traverse do |p|
if p.is_a?(Nokogiri::XML::Text)
input = p.content
p.content = input.scan(/.{1,5}/).join("­")
end
end
doc.at("div").inner_html
end
wrap("aaaaaaaaaa")
给了我
"aaaaa&shy;aaaaa"
而不是
"aaaaa­aaaaa"
如何得到第二个结果?
答案 0 :(得分:0)
返回
doc.at("div").text
而不是
doc.at("div").inner_html
然而,这会从结果中删除所有HTML。如果你需要保留其他标记,你可以放弃使用CGI.unescapeHTML:
CGI.unescapeHTML(doc.at("div").inner_html)