Rails: HTML-Tag-Text abschneiden, während der Linktext beim Abschneiden der Datenbankspalte erhalten bleibt
P粉896751037
P粉896751037 2023-09-12 19:18:11
0
1
463

Ich habe eine Datenbankspalte namens comment, in der Kommentare gespeichert werden, die HTML-Tags enthalten.

Um große Texte zu kürzen und vollständig in einem Popup-Fenster anzuzeigen, habe ich die truncate(comment, length: 50, escape: false)-Funktion verwendet.

Betrachten wir zwei Beispiele:

Beispiel 1: comment 列包含以下带有 HTML 标记的纯文本。通过使用 escape: false Die Spalte enthält den folgenden Klartext mit HTML-Tags. Durch die Verwendung von escape: false werden HTML-Tags nicht abgeschnitten und der Text wird korrekt angezeigt, einschließlich aller Formatierungen wie Fett:

<strong>123</strong><br>
\\<br>
<strong>test</strong>

Beispiel 2: In diesem Fall verwende ich href 标记创建链接,但 escape und das Verhalten funktioniert nicht wie erwartet. Es erkennt es nicht als HTML-Markup, sondern behandelt es als einfachen Text:

<a href="/uploads/attachments/2211/test.pdf" target="_blank">ClickToOpenFile</a>

Nach der Kürzung sieht die Anzeige wie folgt aus:

<a href="/uploads/attachments/2..

Das gewünschte Ergebnis besteht jedoch darin, nur den Text innerhalb des -Tags abzuschneiden und den Linktext „ClickToOpenFile“ intakt zu lassen.

Ich habe es mit rawhtml_safe versucht, aber leider lieferten sie nicht die gewünschten Ergebnisse.

P粉896751037
P粉896751037

Antworte allen(1)
P粉665427988

使用 github.com/hgmnz/truncate_html gem:

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>
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!