Avatar billede lund_dk Praktikant
15. juni 2006 - 08:05 Der er 10 kommentarer og
1 løsning

Replace, repace ikke midt et et ord

strContent = replace(strContent, "pik", "rose",1,-1,1)

Har denne som jeg laver et ordfilter på, men med denne her, så går den jo også ind og erstatter midt i et ord.

Skriver jeg eksepel pikant - da erstatter den pik og skriver roseant

Hvordan får jeg den til kun at erstatte enkelstående ord, og ikke inde mit i et ord..
Avatar billede ffsoft Praktikant
15. juni 2006 - 08:31 #1
Prøv

strContent = replace(strContent, " pik ", "rose",1,-1,1)
Avatar billede nielle Nybegynder
15. juni 2006 - 08:53 #2
Denne version virker også selv om der bruges store og små bogstaver, ordet ligger i starten eller slutningen af teksten, og hvis der f.eks. kommer et !-tegn lige efter:

Set re = New RegExp
re.Pattern = "\bpik\b"
re.IgnoreCase = True
re.Global = True

strContent = re.Replace(strContent, "rose")
Avatar billede lund_dk Praktikant
15. juni 2006 - 08:53 #3
Hehe, nårh ja selvfølgelig, den lå lige til højrebenet..

Smid et svar ;)
Avatar billede lund_dk Praktikant
15. juni 2006 - 09:11 #4
strContent = replace(strContent, " pik ", "rose",1,-1,1)
denne virker fint, og tager også højde for store og små bogstaver..
Avatar billede nielle Nybegynder
15. juni 2006 - 09:32 #5
... men ikke for:

"pik ... mere tekst"
"mere tekst ... pik"
"mere tekst ... pik!!! ... mere tekst"

eller bare:

"pik"
Avatar billede lund_dk Praktikant
15. juni 2006 - 09:33 #6
Har du helt ret i,sku lige til at sige det efter at have testet det :D
Avatar billede lund_dk Praktikant
15. juni 2006 - 09:34 #7
Har min function her, hvordan smider jeg den derin, når jeg trækker badword ud fra databasen

Function Badword(strContent)

    strBadword= "select * from badword where active = true"
    Set RsBadword= conn.Execute(strBadword)
    While Not RsBadword.EOF
    strContent = replace(strContent, " " & rsBadword("badword") & " ", " <font color=""#87A2B2"" title=""Ord fanget af ordfilteret"" style=""cursor:pointer;""><u>" & rsBadword("goodword") & "</u></font> ",1,-1,1)
    Rsbadword.MoveNext
    Wend
    Set RsBadword=Nothing

    Badword = strContent
End Function
Avatar billede nielle Nybegynder
15. juni 2006 - 09:41 #8
Function Badword(strContent)
    Set re = New RegExp
    re.IgnoreCase = True
    re.Global = True

    strBadword = "SELECT * FROM badword WHERE active = true"
    Set RsBadword = conn.Execute(strBadword)
    While Not RsBadword.EOF
        re.Pattern = "\b" & rsBadword("badword") & "\b"
        strContent = re.Replace(strContent, "<font color=""#87A2B2"" title=""Ord fanget af ordfilteret"" style=""cursor:pointer;""><u>" & RsBadword("goodword") & "</u></font>"

        RsBadword.MoveNext
    Wend
    Set RsBadword = Nothing
    Badword = strContent
End Function
Avatar billede nielle Nybegynder
22. juni 2006 - 21:26 #9
Har du fået afprøvet det?
Avatar billede lund_dk Praktikant
23. juni 2006 - 07:57 #10
Åh, fik jeg ikke afsluttet det..
Sorry..
Men det fungerer helt optimalt :)
Avatar billede nielle Nybegynder
23. juni 2006 - 08:23 #11
Svar :^)
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