20. juni 2006 - 14:12Der er
37 kommentarer og 1 løsning
Replace function
Har et community, hvor beskeder kører igennem replace funktioner med smileys, badword m.m.
Jeg vil så lave en replace funktion der går ind gå ind og laver et brugernavn om til link
Hvis en bruger skriver [brugernavn] skal dette er erstattes med link til den pågældende bruger (eks bruger.asp?User=brugernavn) Hvordan fikser jeg det, når den IKKE skal lave replace bare nårman skriver brugernavn, men først når der står [brugernavn]
Du vil have at den skal ændre et brugernavn til et brugernavn med link, hvis en bruger f.eks. skriver [tjaz] og ikke så den bare erstatter det hvis man skriver tjaz rent?
Function nyTekst(tekst) 'Først splitter vi teksten op så vi kan tjekke hvert enkelt ord arrTekst = Split(tekst, " ")
'Så skal vi have testet hvert ord For t = LBound(addTekst) to UBound(arrTekst)
'Først tjekker vi om hvert enkelt ord starter OG slutter med henholdsvis [ og ] if left(arrTekst(t), 1) = "[" AND right(arrTekst(t), 1) = "]" then
'Hvis der er det fjerne vi [ og ] så vi kan tjekke databasen for ordet arrTekst(t) = replace(arrTekst(t), "[", "") arrTekst(t) = replace(arrTekst(t), "]", "")
'Det er så her vi skal have fat i din database for at se om der er en bruger der passer til ordet strSQL = "SELECT * FROM brugere WHERE username = '"& arrTekst(t) &"'" set rs = Conn.Execute(strSQL)
'Hvis vi finder et brugernavn som passer erstatter vi det med et link if not rs.eof then 'Hvis vi finder det erstatter vi det enkelte ord med et link + ordet ofc. arrTekst(t) = "<a href="ditlink.asp">"& arrTekst(t) &"</a>" else 'Hvis ikke skal vi bare bruge ordet alene, hvor vi sætter [ og ] tilbage 'så brugeren evt kan se at han har stavet forkert arrTekst(t) = "["& arrTekst(t) &"]" end if
end if
'Herefter smider vi det igennem din egen replace funktion arrTekst(t) = FontWeight(arrTekst(t))
'Så sætter vi teksten sammen igen (husk mellemrummet som vi før brugte til at splite den ad) nyTekst = nyTekst & arrTekst(t) &" "
Next End Fuction
'Du kan nu udskrive det hele response.write nyTekst(rs("tekst"))
Det er der, tager jeg ovenstående kode jeg lige har sendt, så virker der fint.. Når jeg smider lCase(username) i sql sætningen, er det den siger der ikke noget der hedder username .. meeeen som sagt, det er der..
Kommentar: nielle 20/06-2006 19:27:26: den viker NÆSTEN også.. MEN igen, skriver jeg LunD og brugrnavet hedder Lund i Databasen, så replacer den ikke..
Funktionen her strContent = replace(strContent,"[b]","<b>",1,-1,1) Gør at den er ligeglad om du skriver [B] eller [b] så erstatter den alligevel..
Jeg ønsker det da jeg har et community hvor der ikke er en chance for at vide om en bruger hedder lund eller Lund , så ville der være rart med en replace som tagr højde for det.
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.