Rumah > Soal Jawab > teks badan
Saya mempunyai lajur pangkalan data yang dipanggil comment
yang menyimpan ulasan yang mengandungi teg HTML.
Untuk memendekkan teks besar dan memaparkannya sepenuhnya dalam tetingkap timbul, saya menggunakan fungsi truncate(comment, length: 50, escape: false)
.
Mari kita pertimbangkan dua contoh:
Contoh 1:
comment
列包含以下带有 HTML 标记的纯文本。通过使用 escape: false
Lajur mengandungi teks biasa berikut dengan tag HTML. Dengan menggunakan escape: false
, teg HTML tidak dipotong dan teks dipaparkan dengan betul, termasuk sebarang pemformatan seperti tebal:
<strong>123</strong><br> \\<br> <strong>test</strong>
Contoh 2:
Dalam kes ini saya menggunakan href
标记创建链接,但 escape
dan tingkah laku tidak berfungsi seperti yang diharapkan. Ia tidak mengiktirafnya sebagai penanda HTML, tetapi menganggapnya sebagai teks biasa:
<a href="/uploads/attachments/2211/test.pdf" target="_blank">ClickToOpenFile</a>
Selepas dipotong, paparan adalah seperti berikut:
<a href="/uploads/attachments/2..
Walau bagaimanapun, hasil yang diingini ialah memotong hanya teks di dalam teg , meninggalkan teks pautan "ClickToOpenFile" utuh.
Saya cuba menggunakan raw
和 html_safe
tetapi malangnya mereka tidak memberikan hasil yang diinginkan.
P粉6654279882023-09-13 16:54:17
Gunakan github.com/hgmnz/truncate_html permata:
some_html = '<ul><li><a href="http://whatever">This is a link</a></li></ul>' truncate_html(some_html, length: 15, omission: '...(continued)') => <ul><li><a href="http://whatever">This...(continued)</a></li></ul>