Jeg er i gang med at lave mig et debatforum, og vil have at man skal kunne lave qoutes. Ved at klikke på et link bliver teksten [QUOTE]1234[/QUOTE] indsat i input formularen på asp siden.
tallet mellem de to tags er et id til det debatindlæg der quotes. Hvordan scanner jeg en streng for det tal der står mellem de to tags?
Når jeg har fået teksten som qoutes til i databasen, hvordan sætter jeg den så ind mellem de to tags?
Set objRegExpHTTP1 = New RegExp objRegExpHTTP1.Global = True objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP1.Pattern = "(\[QUOTE])(.*?)(\[/QUOTE])" set rs = server.createobject("adodb.connection") rs.open str sql = "select * from tabel where id = $2" set rs = rs.execute(sql) if not rs.eof strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn")) else strOutput = objRegExpHTTP1.Replace(strInput, "") end if
set objRegExpHTTP1 = Nothing quotes = strOutput end function %>
Det kan muligvis gøres med denne funktion... Så kalder du den bare
Set objRegExpHTTP1 = New RegExp objRegExpHTTP1.Global = True objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP1.Pattern = "\[QUOTE\](.*?)\[/QUOTE\]" set rs = server.createobject("adodb.connection") rs.open str sql = "select * from tabel where id = $1" set rs = rs.execute(sql) if not rs.eof strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn")) else strOutput = objRegExpHTTP1.Replace(strInput, "") end if
set objRegExpHTTP1 = Nothing quotes = strOutput end function %>
så gør du bare det samme... så kan du skrive teksten ud med...
<% Function quotes(strInput)
Set objRegExpHTTP1 = New RegExp objRegExpHTTP1.Global = True objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP1.Pattern = "\[QUOTE\](.*?)\[/QUOTE\]" set rs = server.createobject("adodb.connection") rs.open str sql = "select * from tabel where id = $1" set rs = rs.execute(sql) if not rs.eof strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn")) else strOutput = objRegExpHTTP1.Replace(strInput, "") end if rs.close set objRegExpHTTP1 = Nothing quotes = strOutput end function
strTekst = rs("tekst") strTekst = quotes(strTekst) strTekst = Replace(strTekst, ":)","<img src='grafik/smiley_smile.gif'>") Response.Write strTekst %> Koden er en funktion der finder alle forekomster af [quote] og tager teksten imellem, denne tekst skulle gerne smides i en sql, og derefter vha. en connection og denne teksten fra databasen sættes så ind på pladsen i stedet for [quote]1234[/quote] Husk at rette tabelnavnet samt denne feltnavnet i denne linie.. strOutput = objRegExpHTTP1.Replace(strInput, rs.fields("feltnavn"))
regexp kører hele koden igennem hvor den leder efter elementer der matcher pattern der er defineret. Derefter replacer den i de forekomster som den kender.
Men problemet er at RegExp ikke kører under ChiliASP..
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.