Avatar billede Lasse Novice
09. juli 2001 - 00:17 Der er 6 kommentarer og
1 løsning

escape

Jeg skal skrive en lille historie og den skal ligges ind i en streng. I historien forekommer der mange \'(også mange \"). De skal escapes hver gang, ellers tror javascript at det er slutningen på strengen. Kan man komme uden om det, så man ikke skal manuelt skal sidde og escape hver gang? Jeg er ikke interesseret i replace metoden i et tekstbehandlingsprogram, men mere en funktion der evt. kunne gøre det... lidt ligesom perl funktionen

<<END
..
..
..
END

?
Avatar billede jakoba Nybegynder
09. juli 2001 - 00:33 #1
en anden måde at escape er at skrive \\ foran det tegn der \'ikke skal have sin specialbetydning her\'. fx:

var minStreng = \"omgivet af \\\"-tegn, men også med \\\" indeni\"
              + \"eventuelle \'-tegn kan du bare skrive\";

mvh JakobA
Avatar billede roenving Novice
09. juli 2001 - 09:49 #2
Hvorfor i det hele lægge det i JavaScript -- ville det ikke være bedre at have det i et felt (f.eks. TYPE=\"hidden\") på formen - der ville du bare kunne skrive det med gåseøjne og alt muligt.

Når du så har brug for teksten, kan du så vælge at gøre noget med en layer, eller samle teksten op og aflevere den et andet sted; JavaScript vil opfatte hele tekststrengen, fordi den ikke tager det tegn for tegn, men kigger i den hukommelsesposition, den får udpeget.

hth
jes
Avatar billede Lasse Novice
09. juli 2001 - 15:52 #3
jakoba... det er foreløbig den metode jeg bruger pt.

roenving... det var ellers en smart metode, men hvis du læser 1. linie så står der:

(og mange \")

og der skal en eller anden plinger for at afgrænse det - også når det sættes ind.

Jeg tror bare jeg ligger det ud i en fil, og henter det derfra.
Avatar billede olebole Juniormester
10. juli 2001 - 23:00 #4
<ole>
Aller først: Det kan ikke være rigtigt, at både dobbelte og enkelte gåseøjne skal escape\'es.
Man kan godt skrive dobbelte i en streng, der er defineret mellem et par enkelte gåseøjne:

str = \'Han sagde: \"Det kan man da godt...!\", gjorde han.\';
alert(str);

...eller omvendt.
Derfor er det ikke spor bedre at skrive noget i et hidden-field, da man alligevel skal definere strengen i value-attributten i input-tag\'et - igen mellem et par gåseøjne. Derfor kan der også her kun skrives enkelte eller dobbelte i strengen...ikke begge dele.

Man render i øvrigt ind i nogle andre problemer omkring special tegn, uanset hvordan man gør det. I HTML anvendes specielle entities for alle special tegn - f.eks. de skandinaviske æ, ø og å. De hedder - for samme tegn - &aelig; - &oslash; og &aring;
I JavaScript bruger man ikke disse entities, selvom nogle browser/OS kombinationer forstår dem. Her anvender man den escape\'ede værdi af oktal-værdien af tegnets ASCII kode. For de samme tegns vedkommende, er det \\346 - \\370 og \\345. Andre tegn kan findes her:
    http://www.olebole.f2s.com/octalconverter/
...bær over med en kanon langsom server. Filerne bliver snart flyttet  :)

Du kan også vælge at gøre noget helt andet, nemlig at loade en HTML-side med teksten ind i et <div> på siden.
I NS4.x kan det gøres dejlig ligetil, mens man i IE og NS6+ må en tur igennem en skjult <iframe>. I IE kan man skjule <iframe>\'en med \'display:none\' eller \'visibility:hidden\', men det går ikke i NS6, da væsentlige funktionaliteter så går tabt ved <iframe>\'en. Derfor sættes \'width\' og \'height\' i stedet til \'0\'.
Du kan se, hvordan på:
    http://www.olebole.f2s.com/load_html/
...igen: tååååååålmod  :o)
/mvh
</bole>
Avatar billede Lasse Novice
10. juli 2001 - 23:33 #5
hvorfor jeg nævnte \" var det ikke var en løsning at sætte dem ind i dobbeltplinger istedet for enkeltplinger.

Men nu har jeg escapet hele lortet i hånden, og det virker
Avatar billede Lasse Novice
10. juli 2001 - 23:33 #6
lukket
Avatar billede olebole Juniormester
10. juli 2001 - 23:42 #7
...selv tak...!
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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