Toon posts:

javascript replace meerdere (variabele) stringen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een stukje van de inhoud van een string veranderen door een andere tekst.
Dat kan met string.replace, dat weet ik, maar nou vroeg ik me af ik gebruik in het eerste argument van replace een variabele als string, dus:
totaal=totaal.replace(variabele1,variabele2);
Ik weet nou niet hoe ik meerdere instanties van het te vervangen stukje moet vervangen, want een variabele kun je niet gebruiken als een regulaire expressie, anders had ik dit kunnen doen: /variabele/g.
Maar je kunt geen variabelen in regulaire expressies gebruiken (volgens mij doe je dat tenminste als je het /tussen/ zet.
Weet iemand een manier om toch die variabele te gebruiken en toch globaal de string om te zetten?

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 22:34
Dus je hebt een string als

"blabla eentweedrie blabla viervijfzes eentweedrie blabla"

en dan wil je alle 'eentweedrie' gedeelten vervangen door een andere string die je dus ergens kunt invoeren oid.

Ik ben geen javascript expert, maar het is vast wel mogelijk om met een while loopje te zoeken naar strings, de karakterposities te achterhalen en dan die gedeelten vervangen door strings.

Verwijderd

Topicstarter
Ja, maar dan ook de blabla gedeeltes, en ik heb nog (veel)meer strings die ik dan wil vervangen, dus daarom heb ik die in een array geplaatst en doe ik dit:
stringarray=new Array('blabla','eentweedrie','string3','string4','string5','string6');
string="blabla eentweedrie blabla viervijfzes eentweedrie blabla";
for (i=0;i<stringarray.length;i++){string=string.replace(stringarray[i],'wat ik er wel wil hebben staan'};
Alleen nou pakt die alleen de 1e string die aanwezig is in de 'te behandelen' string, en ik kan niet /stringarray[i]/g gebruiken.
Alleen die wil ik wel gebruiken, maar ik wil ook die variabele gebruiken. Dus, weet iemand hier een truukje op?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

ipv regexp = /blaat/g kan je ook regexp = new RegExp("blaat", "g") gebruiken.
Als je dat in een loopje zet kan je dus op de plaats van blaat een waarde uit de array zetten.

Today's subliminal thought is:


Verwijderd

Topicstarter
Bedankt Annie(!?), dat was inderdaad de oplossing.
Hoewel ik nog wel een extra probleempje erbij kreeg, omdat ik $ en ^ en zo gebruik in mijn strings. Maar "\\" ervoor en hij doet het.
Bedankt!!:)