Avatar billede dontron Nybegynder
24. maj 1999 - 17:13 Der er 11 kommentarer og
1 løsning

Erstat "+" med "%2B" i JavaScript

Jeg vil gerne erstatte "+" med "%2B" i JavaScript

strReplace = /+/i ;
strRecieve = strRecieve.replace(strReplace, ''%2B'');

Den giver altså en grum fejl
Bruger Javascript + til noget i sine strenge??

Findes der en anden måde??

Avatar billede cyberesben Nybegynder
24. maj 1999 - 18:10 #1
ja, det er en af de interne tegn i javascript, men jeg kan godt lige glo på det og kigge tilbage senere...
Avatar billede cyberesben Nybegynder
24. maj 1999 - 18:33 #2
ok... jeg har lige rodet lidt med det og fået dette til at virke:

value1 = 'ord1 + ord2';
value2 = value1.replace('+','%2B');
alert(value2);
Avatar billede dontron Nybegynder
24. maj 1999 - 18:49 #3
Jammen den virker jo!!
Du er sgu hurtig esben :-))
Men øhm hvad nu hvis jeg har følgende

value1 = 'ord1 +++ ord2 +++ ord3';
value2 = value1.replace('+','%2B');

så får du kun første + erstattet med %2B
Der var den anden metode netop god da den erstattede alle +++ med %2B
Ka du fixe den også?


Avatar billede cyberesben Nybegynder
24. maj 1999 - 18:54 #4
det lyder lidt underligt at den ikke vil erstatte resten også...
hmmm jeg tror du skal gøre sådan her:

value1 = 'ord1 + ord2';
value2 = value1.replace('+','%2B');
value2 = value2.replace('++','%2B'%2B');
value2 = value2.replace('+++','%2B'%2B'%2B');
value2 = value2.replace('++++','%2B'%2B'%2B');

skriv hvis det ikke virker
Avatar billede dontron Nybegynder
24. maj 1999 - 19:11 #5
Nope - jeg kan selfølig lave et loop og løbe strengen igennem tegn for tegn
Men det ville være lettere hvis det kunne gøres for hele strengen
som med strReplace = /+/i ;
(hvor /i er alle forekomster)

Avatar billede la Nybegynder
24. maj 1999 - 19:25 #6
Hvad med at bruge unescape(tekststreng)???
Avatar billede cyberesben Nybegynder
24. maj 1999 - 20:03 #7
escape/unescape er til at konvertere SPACE til %20 og omvendt
Avatar billede s Nybegynder
24. maj 1999 - 21:41 #8
Er der ikke bare sat for mange abostroffer ind? Skal det ikke se således ud istedet?
Hvis det er rigtigt skal jeg nok svare.


value1 = 'ord1 + ord2';
value2 = value1.replace('+','%2B');
value2 = value2.replace('++','%2B%2B');
value2 = value2.replace('+++','%2B%2B%2B');
value2 = value2.replace('++++','%2B%2B%2B');

Avatar billede cyberesben Nybegynder
24. maj 1999 - 21:46 #9
ups jo, jeg havde lige kommet til at kopiere nogle apostroffer med *G*
Avatar billede dontron Nybegynder
28. maj 1999 - 20:37 #10
value2 = value1.replace('+','%2B');

Den erstatter stadig kun en enkelt forekomst af %2B

så ved 'sdfg+sdfg+wert+sdfg+xcvb'
bliver den kun til 'sdfg%2Bsdfg+wert+sdfg+xcvb'


Avatar billede dontron Nybegynder
30. maj 1999 - 18:11 #11
Nå, vi gider ikke rode mere i det problem hehe - jeg laver det i VB script - så må netscape brugerne undvære :-))
Avatar billede skjoldby Nybegynder
05. juni 2001 - 18:30 #12
Jeg ved at det er meget meget længe siden dette spørgsmål har været oppe. Men i min søgen på en lign. funktion som dotron ønskede faldt jeg over det. Jeg har fundet en løsning og måske er andre interesseret:

temp = \"tekst + tekst ++++ tekst\"
temp2 = temp.replace(/[\\+]/g, \"%2B\")

alert(\"temp: \" + temp + \"\\ntemp2: \" + temp2)
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