Avatar billede Slettet bruger
26. november 2003 - 16:23 Der er 3 kommentarer og
1 løsning

Replace - anderledes brug?

Jeg har lige et spørgsmål... et lidt svært et.

Jeg er ved at lave et forum på min hjemmeside, og det går faktisk utrolig godt indtil videre. Men jeg er løbet ind i et problem, som handler om at quote noget tekst. F.eks. er der en bruger der skriver følgende:

**********
Hej, jeg har set på en hjemmeside at man kan lave det og det om til det. For de skriver nemlig:
[quote writer="Microsoft"]blablabla lave det og det[/quote]
Jeg synes det er meget spændende. Men passer det?
**********

Tamt eksempel, men faktisk et godt et. Nu skal dette omskrives til HTML, og det skal se sådan ud:

********
Hej, jeg har set på en hjemmeside at man kan lave det og det om til det. For de skriver nemlig:
<blockquote>
SKREVET AF MICROSOFT
  <table>
    <tr>
      <td>blablabla lave det og det</td>
    </tr>
  </table>
</blockquote>
Jeg synes det er meget spændende. Men passer det?
************

Bemærk hvad der er sket. Værdien fra
[quote writer="Microsoft"]
er hentet og omskrevet. Det, der står i writer="Microsoft" er hentet og lavet om til "SKREVET AF _MICROSOFT_".
Resten af det der står, altså [Quote] uden writer="Microsoft" er også blevet taget, og udnyttet.

Jeg ved, hvordan [/quote] skal omskrives:
strBesked = rs("besked")
strBesked = Replace(strBesked, "[/quote]", "</td></tr></table></blockquote>")
response.write(strBesked)

Men spørgsmålet er nu, hvordan jeg omskriver det andet, altså ikke [/quote], men [quote writer="Microsoft"]. Værdien fra writer="" skal hentes, gemmes så det kan skrives et andet sted, og så skal resten omskrives til <blockqoute> osv.

Jeg bruger MDB Access Database, og lad os sige at brugerens tekst hentes fra et felt i databasen der hedder "Besked".

Håber I kan hjælpe.
Avatar billede eagleeye Praktikant
26. november 2003 - 16:35 #1
Du kan lave det hele i en Regular expression sådan her:

<%
str = "Hej, jeg har set på en hjemmeside at man kan lave det og det om til det. For de skriver nemlig: [quote writer=""Microsoft""]blablabla lave det og det[/quote] Jeg synes det er meget spændende. Men passer det? "

Set regEx = New RegExp
regEx.Global = true
regEx.IgnoreCase = true
regEx.Pattern = "\[quote writer=""([a-z]*)""\](.*)\[/quote\]"

RegEx.Global = true
str = RegEx.Replace(str,"<blockquote>Skrevet af: $1 <table><tr><td>$2</td></tr></table></blockquote>")
Set RegEx = Nothing

Response.Write "<br><br>"
Response.Write str
%>
Avatar billede Slettet bruger
26. november 2003 - 16:41 #2
utrolig mange tak, det fungerer perfekt! :)
Avatar billede Slettet bruger
26. november 2003 - 16:47 #3
jeg vil lige høre, om det også fungerer med danske bogstaver, tal og andre tegn?

F.eks. hvis writer er "Martin Åge d. 3."
Avatar billede eagleeye Praktikant
26. november 2003 - 16:51 #4
Ikke lige nu ;)

Det kan let laves om sådan du bare ændre patternet som er denne linje:
regEx.Pattern = "\[quote writer=""([a-z]*)""\](.*)\[/quote\]"


Til denne så skulle den tage æ,ø,å, tal og andre tegn:
regEx.Pattern = "\[quote writer=""(.*)""\](.*)\[/quote\]"
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