Avatar billede wilweb Nybegynder
29. september 2001 - 18:10 Der er 8 kommentarer og
1 løsning

søg og slet i text streng

Jeg vil gerne fra sortere lidt i en tekst streng
fx.
sNavn = request.form(\"navn\")
lad os sige at sNavn indeholder: <H1>Henrik men det kunne ligeså godt være: <B>Erik</b>
Nu vil jeg gerne have at jeg kun har navnet tilbage i en ny variabel fx snewNavn, er der en asp haj der kan hjælpe mig med det?
Avatar billede mri Nybegynder
29. september 2001 - 22:13 #1
Prøv:

sNavn = Replace(sNavn, \"<B>\", \"\")
sNavn = Replace(sNavn, \"</B>\", \"\")

Du skal være opmærksom på, at Replace funktionen er case sensitive
Avatar billede wilweb Nybegynder
29. september 2001 - 22:49 #2
Jeg er ude efter en metode der løber text Strengen igennem og finder < og >
mit kode stykke virker bare ikke, som jeg vil men det kan være du kan se hvad jeg gør galt:

\'sætter hvad der skal ledes efter
sSeekChr1 = \"<\"
sSeekChr2 = \">\"

\' tager værdi fra formen, hvor der skal ledes i
sNavn = request.form(\"navn\")

\'antal gange løkken skal køre
tStringlaengde = Len(\"sNavn\")

\' ser om sNAvn indeholder < og hvilken position
res1 = Instr(1, sNavn, sSeekChr1)
\' ser om sNAvn indeholder > og hvilken position
res2 = Instr(1, sNavn, sSeekChr2)

\'hvis res1 og res2 = 0 er det det samme som at ingen af tegnene blev fundet og skal herefter
\'bare hoppe forbi IF sætningen, hvis res1 og res2 er forskellig fra 0 så er begge tegn fundet
\' og så skal man ind i IF sætningen
if res1 <> 0 and res2 <> 0 then
    start = res2 + 1 \'res2 er sidste > tegn position + 1 = næste tegn
    laengde = tStringlaengde - res2 \' antal tegn der skal med i ny variabel
    newsNavn = Mid(sNavn, start, laengde)
        \'genererer ny variabel af sNavn, start tegn, antal tegn med i variabel   
end if

response.write newsNavn \' output den nye variabel
%>

men det virker ikke og jeg ved ikke hvorfor?
Avatar billede mri Nybegynder
29. september 2001 - 23:23 #3
Jeg har lavet det lidt om for dig. Det du vil er at fjerne alle html tags - dvs. noget der begynder med \'<\' og slutter med \'>\'.

Nedenstående løber en streng igennem - og hopper over alt fra og med \'<\' til den møder et \'>\'.

Det skulle løse dit problem.

<%

Function clearHTMLTags(htmlStr)

    sSeekChr1 = \"<\"
    sSeekChr2 = \">\"

    For i = 1 to len(htmlStr)
        If mid(htmlStr, i, 1) = sSeekChr1 Then
            response.write \"<BR>HIT SEEK1\" & vbCrLf
            Do until mid(htmlStr, i, 1) = sSeekChr2
                i = i + 1
                response.write \"<BR>REMOVING TAG Chr: \" & i & vbCrLf
            Loop
        Else
            response.write \"<BR>ADDING Chr: \" & i & \": \" &  mid(htmlStr, i, 1) & \" TO NEW HTMLSTR\" & vbCrLf
            newHTMLStr = newHTMLStr & mid(htmlStr, i, 1)
        End If
    Next

   
    clearHTMLTags = newHTMLStr
   
End Function


response.write(\"<P>\" & clearHTMLTags(\"abc<b>defghijk</b>lmnop\"))


%>
Avatar billede wilweb Nybegynder
29. september 2001 - 23:51 #4
Du er for hård, det virker!
gider du sætte
\'forklaringer ind så jeg forstår din kode lidt mere, jeg er meget ny i asp
tak for hjælpen indtil nu
Gizom

Avatar billede mri Nybegynder
29. september 2001 - 23:57 #5
<%

Function clearHTMLTags(htmlStr)

    \'    Her sættes søgekaraktererne
    sSeekChr1 = \"<\"
    sSeekChr2 = \">\"

    \'    I denne For next løkke løbes strengen igennem en
    \'    karakter a gangen
    For i = 1 to len(htmlStr)
        \'    Er den nuværende karakter lig med søgekarakter1
        If mid(htmlStr, i, 1) = sSeekChr1 Then
            \'    Hvis ja - så loop videre i strengen indtil
            \'    vi møder søgekarakter2
            response.write \"<BR>HIT SEEK1\" & vbCrLf
            Do until mid(htmlStr, i, 1) = sSeekChr2
                \' Vi looper en gang
                i = i + 1
                response.write \"<BR>REMOVING TAG Chr: \" & i & vbCrLf
            Loop
            \'    Nu ved vi at vi er forbi søgekarakter2
            \'    Tagget er atlså slut
        Else
            \'    Derfor kan ingen karakterer, sim vi møder hernede, være
            \'    en del af et tag
            response.write \"<BR>ADDING Chr: \" & i & \": \" &  mid(htmlStr, i, 1) & \" TO NEW HTMLSTR\" & vbCrLf
            newHTMLStr = newHTMLStr & mid(htmlStr, i, 1)
        End If
    Next

    \'    Returner den modificerede streng
    clearHTMLTags = newHTMLStr
   
End Function


response.write(\"<P>\" & clearHTMLTags(\"abc<b>defghijk</b>lmnop\"))


%>
Avatar billede wilweb Nybegynder
29. september 2001 - 23:59 #6
Tusinde tak fra
Gizom
Avatar billede wilweb Nybegynder
30. september 2001 - 00:07 #7
jeg forstå ikke denne linje:
response.write(\"<P>\" & clearHTMLTags(\"abc<b>defghijk</b>lmnop\"))

hvorfor er det nødvendigt med alt dette her(\"abc<b>defghijk</b>lmnop\"), jeg har prøvet at skrive:
response.write clearHTMLTags

men det virker jo ikke, du må undskylde hvis jeg er for besværlig
Avatar billede mri Nybegynder
30. september 2001 - 00:17 #8
Jeg har lagt funktionaliteten ind i en funktion, som hedder clearHTMLTags(htmlStr)

du kalder funktionen ved at skrive:

clearHTMLTags(din htmlstreng her)

Men den returnerer en værdi, som du vil have fat i - derfor skal du sætte funktionen lig med den variabel, du vil have din streng uden tags i.

Det gør du ved at skrive:

gizomsValue = clearHTMLTags(gizomsHTMLStr)

eller mere specifikt i dit tilfælde:

sNavn = clearHTMLTags(request.form(\"navn\"))

Så er variablen sNavn sat til request.form(\"navn\") uden HTMLTags eller for den sags skyld XMLTags.

Når jeg i eksemplet har gjort det en smule anderledes, så er det fordi, at jeg ikke har nogen værdi fra formobjektet og kun har brug for at kontrollere, at alt virker som det skal i mit eksempel.

Avatar billede wilweb Nybegynder
30. september 2001 - 07:38 #9
Du har ydet en stor indsats, tak for hjælpen.
nu forstår jeg hele koden
Mega hit
Gizom
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