Avatar billede tanis Nybegynder
23. december 1999 - 16:56 Der er 10 kommentarer og
1 løsning

Fjenelse af "HTML TAGS" fra en STRING

Er der nogen som kender en let og ukompliceret måde, at fjerne tags fra en string på.

Replace virker kun en del af vejen, da et tag sagtens kan være <TABLE BORDER="1" CELLPADDING="2"> og ikke kun <TABLE>...

Nogle gode ideer?
Avatar billede cldu Nybegynder
23. december 1999 - 18:27 #1
få "replace" til at søge efter < > par og slette det der er imellem. :-)
Avatar billede mule Nybegynder
23. december 1999 - 18:37 #2
Hvordan bruger man da egentlig replace i asp?
Avatar billede tanis Nybegynder
23. december 1999 - 18:55 #3
Mule:

ThisText = "abcde"

Replace(ThisText,"bcd","dcb")

ThisText er nu _adcbe_
Avatar billede tanis Nybegynder
23. december 1999 - 19:02 #4
cldu:
Kan du ikke lige lave et eksempel?
Avatar billede cldu Nybegynder
23. december 1999 - 19:10 #5
tanis: prøv at skrive

ThisText = "<table border="1">"

Replace(ThisText,"<*>"," ")
Avatar billede mule Nybegynder
23. december 1999 - 22:04 #6
Avatar billede flemming Nybegynder
23. december 1999 - 22:33 #7
Minder mig om en leksikal fortolker jeg engang lavede.
Jeg ville lave en lille funktion der har nogle tilstande og som løber strengen igennem fra en ende af. Nedenstående princip kan du udvidde til at omfatte yderlige test hvis det ønskes.

Princippet er:
<%
Function StripHTML( strS )
  DIM strR  ' Result string
  DIM State ' 0=find start; 1=find end;
  DIM intI  ' loop count

  strR  = ""
  State  = 0

  For intI=0 TO Len(strS)
    If State=0 Then
        If Mid(strS,intI,1) <> "<" Then
          strR = strR &Mid(strS,intI,1)
        Else
          State=1
        End If
    Else ' state=1
        If Mid(strS,intI,1) = ">" Then
          State = 0
        Else
          strR = strR &Mid(strS,intI,1)
        End If   
    End If
  Next
  StripHTML = strR
End Function
%>
Avatar billede flemming Nybegynder
24. december 1999 - 12:21 #8
Her med et par mindre detaljer rettet:
<%
Function StripHTML( strS )
  DIM strR  ' Result string
  DIM State ' 0=find start; 1=find end;
  DIM intI  ' loop count

  strR  = ""
  State  = 0

  For intI=1 TO Len(strS)
    If State=0 Then
        If Mid(strS,intI,1) <> "<" Then
          strR = strR &Mid(strS,intI,1)
        Else
          State=1
        End If
    Else ' state=1
        If Mid(strS,intI,1) = ">" Then
          State = 0
        Else
          ' Ignore
        End If   
    End If
  Next
  StripHTML = strR
End Function
%>
Avatar billede tanis Nybegynder
24. december 1999 - 21:55 #9
Grunden til accepteret svar til Flemming, er den at jeg bedre kan lide svar med eks. Så ved jeg at folk, har gjort lidt ud af at svarer, og ikke bare bruger et standard svar! :)

No hard feelings, I hope.

KISS (Keep it simple, sucker) ;)
Avatar billede chruker Nybegynder
25. december 1999 - 21:49 #10
tanis:  Hvis du vil have det simpelt så må cldu's svar da være det helt rigtige.
Avatar billede tanis Nybegynder
27. december 1999 - 19:17 #11
Chruker: Hvis du snakker om KISS, så er det bare en reminder til mig selv, fra min gamle IT Lærer! ;)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester