Avatar billede themepark Nybegynder
30. oktober 2003 - 00:30 Der er 20 kommentarer og
1 løsning

Problemer med replace

Jeg har følgende lille script.

<SCRIPT LANGUAGE="JavaScript">
Sti=unescape(window.location.href)
alert(Sti.replace("/","."))
</SCRIPT>

Problemet er at den kun erstatter det første / i stien, men jeg vil gerne have erstattet dem alle. Jeg ved det kan gøres med /g eller noget i den stil, jeg ved bare ikke hvordan det skal se ud.

Det skal siges, at der helst ikke skal tilføjes flere linjer end de ovenstående.
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:15 #1
<SCRIPT LANGUAGE="JavaScript">
Sti=unescape(window.location.href)
alert(Sti.split("/").join("."))
</SCRIPT>
Avatar billede themepark Nybegynder
30. oktober 2003 - 01:17 #2
Jeg bad ikke om en anden løsning, men om at få at vide hvordan man tilføjer /g til replace.
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:18 #3
eller som du efterlyste :-)

<SCRIPT LANGUAGE="JavaScript">
Sti=unescape(window.location.href)
alert(Sti.replace(/\//g,"."))
</SCRIPT>
Avatar billede themepark Nybegynder
30. oktober 2003 - 01:18 #4
Altså

alert(Sti.replace("//g","."))

i mit tilfælde eller hva?
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:19 #5
som skrevet!
Avatar billede themepark Nybegynder
30. oktober 2003 - 01:21 #6
Altså hvis jeg nu hellere vil bruge anførselstegn i stedet for /, hvordan skal det så skrives?
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:24 #7
det er en go idé at escape specieltegn (eller jeg gør det emmervæk)

så:

alert(Sti.replace(/\"/g,"."))
Avatar billede themepark Nybegynder
30. oktober 2003 - 01:25 #8
Nååårh...nej, jeg mener du bruger / til at omslutte regexp'en, men hvis jeg nu hellere vil bruge ", altså som i "/", hvordan skal jeg så skrive det hele MED /g inklusive?
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:34 #9
så ønsker jeg dig held og lykke ;)

hvis du skulle sætte det imellem anførselstegn, ville det blive opfattet som en string! og du skulle altså have noget i din streng der så sådan ud:
//g og dette ville blive erstattet med et .

netop de slashes der bliver startet med fortæller js. at det er regexp du har med at gøre.
Avatar billede themepark Nybegynder
30. oktober 2003 - 01:37 #10
Yep, det er jeg ganske godt klar over. Men Sti.replace("/",".") fungerer jo fint nok (bortset fra det med det globale), så det kan da godt lade sig gøre med ". Og nej, det er jo kun / der skal erstattes med ., /g fortæller den bare, at det skal gøres globalt. Det jeg gerne vil er hvordan jeg putter det lille /g ind i Sti.replace("/",".")), men samtidig bruger "/" og ikke /\/

Jeg ved ikke om det kan lade sig gøre, men det formoder jeg da, når nu jeg kan bruge Sti.replace("/","."))
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:40 #11
som skrevet held og lykke ;)
Avatar billede themepark Nybegynder
30. oktober 2003 - 01:43 #12
Prøv nu lige at svare ordentligt, ikke? Jeg spørger dig rent faktisk om det kan lade sig gøre, og det der svar synes jeg er lidt flabet.
Avatar billede grunken Nybegynder
30. oktober 2003 - 01:56 #13
;)

prøv at se din kommentar højere oppe, hvor jeg prøvede at gi dig en anden mulig metode at omgå tingene på!

med fare for at gentage mig selv skriver jeg at ting mellem anførselstegn vil blive opfattet som en streng!, og derfor vil den kun erstatte "//g" en enkelt gang hvis den eksisterer"

en regexp starter altid med /, og derfor opfatter javascript det osse som sådant ;)

så hvis du vil replace globalt skal du benytte Sti.replace(/\//g,"."))

så nej det kan ikke lade sig gøre ;)
Avatar billede themepark Nybegynder
30. oktober 2003 - 02:00 #14
Se, det sidste svar havde været rigeligt :) Men en ting til...hvis jeg nu i stedet ønsker at erstatte / med \ skriver jeg følgende

JSSti=JSSti.replace(/\//g,"<")

men det virker selvfølgelig heller ikke...hvorfor? :(
Avatar billede themepark Nybegynder
30. oktober 2003 - 02:06 #15
Hov....ikke < men \ :)
Avatar billede grunken Nybegynder
30. oktober 2003 - 02:07 #16
?? nu er jeg ikke helt med mere ;)

du vil udskifte / med \ hvad lave det der "større end" tegn så ?
Avatar billede grunken Nybegynder
30. oktober 2003 - 02:07 #17
aha ;)
Avatar billede grunken Nybegynder
30. oktober 2003 - 02:09 #18
da \ er standard escapetegn i js. (osse i en streng), så er du nødt til at escape det osse ;)

JSSti=JSSti.replace(/\//g,"\\")
Avatar billede themepark Nybegynder
30. oktober 2003 - 02:13 #19
Perfekt...det virker jo :)

Smid et svar, så er der point :)

Og så skulle du næsten lige kigge på det her spørgsmål

http://www.eksperten.dk/spm/420704

Jeg har lige svaret på det...og det er dog de nemmeste point, jeg nogensinde har tjent ;) Men okay...jeg kender godt selv den situation :)
Avatar billede grunken Nybegynder
30. oktober 2003 - 02:17 #20
hehe, sådan ;), det er rart når den slags spørgsmål findes
den skulle jeg sikkert have brugt et par timer på at finde ud af ;)

men jeg ligger et svar ;)
Avatar billede themepark Nybegynder
30. oktober 2003 - 02:18 #21
Well, det tog mig også lidt tid...ca 5 min...heldigvis er jeg dog ikke så træt endnu...ellers havde jeg sikkert brugt dage :)
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