Avatar billede ofirpeter Nybegynder
11. februar 2009 - 23:46 Der er 13 kommentarer og
1 løsning

Søg og erstat i javascript

Hej,
Jeg jeg har fundet denne stump kode til at søge og erstatte i en javascript variabel:

var tekst = "ABC";
var reg=new RegExp("A");
var erstat="1";
var out=tekst.replace(reg,erstat);

Koden skifter altså A ud med 1. Jeg står dog i den situation at jeg også ønsker at få skiftet B ud med 2 og C ud med 3.

Vil dog gerne undgå at køre den samme kode igennem flere gange. Er der en smart måde hvor jeg kan lave flere "skift" i den samme stump kode?

Mvh.
Peter
Avatar billede tjp Mester
12. februar 2009 - 00:48 #1
Sådan her fx:

var tekst = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

for(i = 0;i < 26; i++){
var reg=new RegExp(String.fromCharCode(i + 65)
);
var erstat= 1 + i;
var tekst=tekst.replace(reg,erstat);
}

Dur kun fra A-Z... ÆØÅ må klares på anden måde. ;-)
Avatar billede tjp Mester
12. februar 2009 - 00:51 #2
Og uden underlige linjeskift :-)

var tekst = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

for(i = 0;i < 26; i++){
  var reg=new RegExp(String.fromCharCode(i + 65));
  var erstat= 1 + i;
  var tekst=tekst.replace(reg,erstat);
}
Avatar billede ofirpeter Nybegynder
12. februar 2009 - 00:52 #3
Det er faktisk netop æ,ø,å,Æ,Ø,Å jeg gerne vil have skiftet ud?
Avatar billede olebole Juniormester
12. februar 2009 - 09:24 #4
<ole>

Så kunne det tyde på, du måske har et helt andet problem, der burde løses. Hvorfra kommer din streng - hvad skal du bruge den til - og hvorfor skifte tegn i den?

/mvh
</bole>
Avatar billede ofirpeter Nybegynder
12. februar 2009 - 09:43 #5
Hej Ole,
Du har fuldkommen ret. Jeg er ved at integrere "Picasa Webalbum Integrator" på min side. Det er et stort stykke javascript der kan snakke samme med googles picasa. (http://www.multiprof.nl/picasa-webalbum-integrator/)

Jeg har dog det problem at de æ,ø og å'er der følger med fra webalbumet, vises som mærkelige uforståelige tegn på min side.

Det er forsøgt løst ved at smide en utf header i starten af dokumentet. header ('Content-type: text/html; charset=utf-8');

Dette bevirker at googles tegn kommer helt korrekt, men alle de andre æ,ø,å på siden vises forkert. Jeg ville gerne undgå at skulle ændre charset på hele siden, da den er rimelig stor med en omfattende database tilknyttet.

Jeg tænkte at løsningen kunne være at ændre de tegn google sender, selvom jeg godt ved at det er en lidt beskidt metode.

Mvh.
Peter
Avatar billede olebole Juniormester
12. februar 2009 - 10:02 #6
Hvis ikke du skifter til utf-8 - og lægger din DB om - er dette blot begyndelsen på de problemer, du vil opleve, til du skifter tegnsæt til utf-8. Derudover er ANSI (iso-8859-1) jo forlængst deprecated i JavaScript, så moderne kode kører Unicode (fortiden utf-8)  =)
Avatar billede ofirpeter Nybegynder
12. februar 2009 - 10:55 #7
Jeg søger stadig en hurtig løsning på problemet. Så må jeg ligge det hele om når jeg får lidt mere tid.
Avatar billede olebole Juniormester
12. februar 2009 - 12:15 #8
Du kan prøve at smide Googles data gennem utf8_decode:
    $data = utf8_decode($data);
Avatar billede olebole Juniormester
12. februar 2009 - 12:16 #9
- eller:
    $data = utf8_encode($data);

Det kommer an på, hvilken vej problemet vender  =)
Avatar billede ofirpeter Nybegynder
12. februar 2009 - 15:11 #10
Hvor koordinere jeg det med javascript og PHP?

Teksten ligger i variablen "tekst" således:
    var tekst = j.feed.title.$t;

Men det gør den jo først når javascriptet er kørt. Derfor giver det ikke meget mening at køre en PHP på javascriptet eller hvad?

var tekst = <? echo utf8_encode('j.feed.title.$t;'); ?>
Avatar billede olebole Juniormester
12. februar 2009 - 23:28 #11
Nej, når det er en JS-streng, du modtager på klienten, kan PHP ikke rigtig gøre noget for dig.
Pokkers ... jeg har set en utf/iso converter i JS indenfor de sidste par uger, men jeg kan ikke huske, hvor  :o|
Avatar billede ofirpeter Nybegynder
16. april 2009 - 16:33 #12
Hej Ole,
Vil du svare?
Avatar billede olebole Juniormester
17. april 2009 - 00:08 #13
Gerne  ;o)
Avatar billede olebole Juniormester
19. april 2009 - 18:57 #14
Tak for points  =)
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