嗨,我有一个像这样的HTML文字:
aaa dafjsld dslajfk òsal asfòljd <a href="ciao.com">aa aa</a> adsfsadfsadfs
我想将它分成两段。但我不想产生这种情况:
<p>aaa dafjsld dslajfk òsal asfòljd <a href="ciao.com">aa</p><p> aa</a> adsfsadfsadfs</p>
如何检查拆分是否包含任何标签并避免使用?
谢谢
答案 0 :(得分:2)
假设您的文字格式正确,可以使用simple_format
。您的链接文本应该在段落内部结束,而不是在下一个段落中,所以我稍微修改了它:
aaa dafjsld dslajfk òsal asfòljd <a href='ciao.com'>aa</a>
aa adsfsadfsadfs
这将输出:
如果您将其传递给<p>aaa dafjsld dslajfk òsal asfòljd <a href='ciao.com'>aa</a></p><p>aa adsfsadfsadfs</p>
,则 simple_format
或其他相似内容。
答案 1 :(得分:2)
为Rails使用'HtmlSlicer'gem。
将此行放在您的Gemfile中:
gem 'html_slicer'
然后捆绑:
% bundle
Gem的行为要复杂得多,它不能按部件数量分割文本。 无论如何,由于你当地的任务:
content = "aaa dafjsld dslajfk òsal asfòljd <a href=\"ciao.com\">aa aa</a> adsfsadfsadfs"
split = HtmlSlicer::Interface.new(content, {:slice => {:maximum => 30}})
split
=> "aaa dafjsld dslajfk òsal asfòljd <a href=\"ciao.com\">aa</a>"
split.slice!(2)
=> "<a href=\"ciao.com\"> aa</a> adsfsadfsadfs"
答案 2 :(得分:0)
在不了解更多问题的情况下,最通用的解决方案可能涉及Hpricot或REXML。这将确保正确处理任何嵌套标记。您可以遍历节点列表并确定创建段落的位置。