Klip en HTML streng i stykker men afslut alle tags
Hej Eksperter
Jeg sidder med et problem, som har drillet mig længe - måske er der nogen af jer, der kan hjælpe?
Jeg har en lang række artikler formateret med HTML liggende i en database. På en oversigtsside vil jeg gerne vise et kort uddrag af hver artikkel - f.eks. de første 200 tegn. Men hvis jeg blot klipper artiklen over efter 200 tegn med Left(streng,200) så kan jeg ikke være sikker på, at alle html-tags i strengen er afsluttet, hvilet kan skabe store problemer med layoutet af oversigtssiden. Der kan f.eks. let mangle en </p> eller </a>.
Er der nogen af jer, der har et godt foreslag til hvordan jeg kan klippe en streng over efter et bestemt antalt tegn og derefter automatisk får indsat eventuelle manglende slut-tags?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
1. Tag de første 200 tegn 2. Gennemse for <> (Start og slut af HTML) 3. Tilføje alle start tags til en datastruktur 4. Fjerne dem hvis slut-tags findes 5. Til sidst tilføje slut tags til de start tags der findes i din datastruktur med HTML tags.
Her er en lille funktion baseret på Regular Expressions - den fjerner alle HTML-tags, og afkorter derefter strengen til et valgt antal tegn, og returnerer en streng med det du skal bruge:
Function RemoveHTML(str As String, length As Integer) Dim strTmp As String Dim rg As New Regex("<[^>]*>")
strTmp = rg.Replace(str, "") If Len(strTmp) > length And length <> 0 Then strTmp = Left(strTmp, length) & " …" End If
Sorry igen - havde ikke læst dit spørgsmål ordentligt - du ville jo beholde HTML-tags, det har jeg ikke lige en funktion på lager til :(
Jeg undskylder
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.