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?
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.