Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 11:17 Der er 23 kommentarer og
1 løsning

Marker tekst i ASP

Jeg markere en tekst med denne kode og det virker faktisk også fint, men hvordan ignorer jeg store og små bogstaver i request.querystring, så alle markeres?

TEKST = Replace(TEKST,"" & request.querystring("tekst") & "","<span style=""color: red;"">" & request.querystring("tekst") & "</span>")
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 11:21 #1
Der er en parameter til replace, der kan lige det:  http://www.w3schools.com/vbscript/func_replace.asp
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 11:24 #2
Hvilken replace?
Avatar billede nielle Nybegynder
16. marts 2008 - 11:26 #3
Øhm, den replace-funktion som du selv bruger i dit kodeeksempel...
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 11:45 #4
Ja ja. men hvilken koden skulle kunne ignorere store og små bogstaver?
Jeg får bare et link og ingen videre forklaring.:(
Avatar billede cpufan Juniormester
16. marts 2008 - 11:58 #5
TEKST = Replace(TEKST,"" & request.querystring("tekst") & "","<span style=""color: red;"">" & request.querystring("tekst") & "</span>",1,-1,0)

prøv denne,

den erik henviser til er godt nok vb script

og jeg er ikke sikker på det er understøttet i asp.
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 12:01 #6
Det er fint understøttet, og det er den sidste parameter, der skal være 1 (vbTextCompare)
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 12:20 #7
Nej desværre. den skældner stadig mellem store og små bogstaver.:(
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 12:47 #8
Eks.
request.querystring("tekst") = "Kaptajnknas"

Så skal alle ord/sætninger der indeholder ordet "kaptajnknas" markeres uanset om det er stavet med lille eller stort.
Det sker bare ikke.:(
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 13:07 #9
Og æ,ø,å markeres heller ikke.:(
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 13:16 #10
Det skyldes åbenbart fordi jeg kører koden lige før:
TEKST = Server.HTMLencode(TEKST)

Kan dette løses?
Avatar billede kaptajnknas Nybegynder
16. marts 2008 - 15:05 #11
Gider ikke enetale, finder hjælp et andet sted.
Lukker spg.
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 16:16 #12
Ja, undskyld vi ikke kan sidde her hele søndagen for at hjælpe dig. Hvis du fik det her til nogenlunde at virke, vil det næste skridt nemlig være at gå over i regulære udtryk - ellers bevarer du ikke de store og små bogstaver, der allerede står i teksten. Og du har helt ret mht æ, ø, og å.
Avatar billede kaptajnknas Nybegynder
17. marts 2008 - 14:41 #13
Tak erikjacobsen.:-)

Det var bare fordi jeg netop havde fået 3 svar og pludselig blev der helt tavs.
Skal jeg oprette et nyt spg.?
Avatar billede erikjacobsen Ekspert
17. marts 2008 - 15:04 #14
Ikke for min skyld. Men det var altså en dejlig søndag ...

Hvad gør du nu med din replace?
Avatar billede kaptajnknas Nybegynder
17. marts 2008 - 15:23 #15
Jamen replacen her virker:
TEKST = Replace(TEKST,"" & request.querystring("tekst") & "","<span style=""color: red;"">" & request.querystring("tekst") & "</span>",1,-1,0)

Der er nu bare æ,ø,å jeg har problemer med, om der kan findes en løsning på det.
Avatar billede erikjacobsen Ekspert
17. marts 2008 - 15:45 #16
Den burde ikke virke med store og små bogstaver, med mindre 0-et til udskiftes med et 1-tal.

Hvis du har brugt htmlentities på din tekst, skal du vel også gøre det på det der kommer fra din querystring.

(og så kommer vi til det regulære udtryk senere)
Avatar billede kaptajnknas Nybegynder
17. marts 2008 - 16:04 #17
Jo naturligvis, 0-et er udskiftet til 1.

request.querystring("tekst") = TEKST = Server.HTMLencode("" & request.querystring("tekst") & "")
Avatar billede erikjacobsen Ekspert
17. marts 2008 - 16:11 #18
Jeg ville nok gøre det en knat simplere:

erstat = server.htmlencode(request.querystring("tekst"))
TEKST = Replace(TEKST,erstat,"<span style=""color: red;"">" & request.querystring("tekst") & "</span>",1,-1,1)
Avatar billede erikjacobsen Ekspert
17. marts 2008 - 16:11 #19
OOkay:

erstat = server.htmlencode(request.querystring("tekst"))
TEKST = Replace(TEKST,erstat,"<span style=""color: red;"">" & erstat & "</span>",1,-1,1)
Avatar billede kaptajnknas Nybegynder
17. marts 2008 - 16:22 #20
Fino. SUPER.:-)
Avatar billede erikjacobsen Ekspert
17. marts 2008 - 16:30 #21
Så hvad sker der hvis du søger på  "and" og din tekst er:

"Anden var anderledes end de andre" ?

Og er det hensigtsmæssigt for dig?
Avatar billede kaptajnknas Nybegynder
17. marts 2008 - 16:46 #22
Ja så markeres "and"en var "and"erledes end de "and"re
Alt sammen med småt selvom det første burde være med stort, men det kan vel næppe gøres noget ved det eftersom teksten jo erstattes af søgeordet.?
Avatar billede erikjacobsen Ekspert
17. marts 2008 - 18:17 #23
Jo, vi kan gøre noget ved det - sådan da.

  Set r = New RegExp
  With r
  .Pattern = "\b(and)\b"
  .IgnoreCase = True
  .Global = True
  End With
  s = "Andrikken And er anderledes, end den anden mands and."
  s=r.Replace(s,"<span style=""color: green"">$1</span>")
  response.write s

Kun der hvor der står "And" eller "and" bliver der ændret noget. Output bliver:

Andrikken <span style="color: green">And</span> er anderledes, end den anden mands <span style="color: green">and</span>.

Men det ødelægges desværre af din bruge af HTML-entities, hvis der er æ, ø eller å (eller andre sjove tegn). Med den korrekte brug af tegnsæt, behøver man ikke &aelig; etc mere.
Avatar billede kaptajnknas Nybegynder
17. marts 2008 - 19:34 #24
Okay. det er absolut en mulighed. Jeg må så lige lege lidt med HTML-encode, måske kan jeg undvære denne, så har jeg i hvert fald en perfekt markering af teksten.:-)
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