[JavaScript] Reguliere expressie probleem

Pagina: 1
Acties:

  • marcrenzo
  • Registratie: September 2001
  • Laatst online: 03-09 00:02
Ik heb de volgende code:
code:
1
outputtekst = outputtekst.replace(/\\[b\]/g, "<b>");

dit werkt prima hij vervangt alle [b] tags voor <b> tags.
maar nou wil ik ook nog een variabele in de expressie kwijt, dus dacht ik dan doe ik:
code:
1
2
i=0;
outputtekst = outputtekst.replace(new RegExp('[b='+i+']','g'), "<b>");

dus dan wil ik alle [b=0] tags vervangen voor <b>
alleen nu vervangt hij elk teken die tussen de [] haken staan voor <b> ook heb ik al geprobeert om voor de [] haken \ te zetten, dus \\[ en \], maar dat helpt ook niet.

Hoe moet dit wel zodat ik een variabele er in kwijt kan.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

http://www.juicystudio.com/tutorial/javascript/regexp.html

Helemaal onderaan bij de RegExp properties staat iets over de $x variabelen die je kan gebruiken in replace.. kijk daar eens naar.

  • marcrenzo
  • Registratie: September 2001
  • Laatst online: 03-09 00:02
Op vrijdag 24 mei 2002 11:21 schreef Bosmonster het volgende:
http://www.juicystudio.com/tutorial/javascript/regexp.html

Helemaal onderaan bij de RegExp properties staat iets over de $x variabelen die je kan gebruiken in replace.. kijk daar eens naar.
ik kan daaruit nou niet echt ontdekken hoe ik nu dus een variabele kan gebruiken in mijn expressie. :?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op vrijdag 24 mei 2002 11:45 schreef marcrenzo het volgende:

[..]

ik kan daaruit nou niet echt ontdekken hoe ik nu dus een variabele kan gebruiken in mijn expressie. :?
In je regexp kun je groupen met (). Deze occurences slaat ie op in variabelen $1-$9 en kun je hergebruiken in je replace. Dat is precies wat het aangegeven voorbeeld doet bijvoorbeeld:
code:
1
2
3
re = /(\w+),\s*(\w+)/;
name = "Lemon, Gez";
name = name.replace(re, "$2, $1");

Of moet ik het toch maar voorkauwen? :)

(Hmm.. volgens mij heb ik je post niet helemaal goed gelezen :P.. wag ff)

  • marcrenzo
  • Registratie: September 2001
  • Laatst online: 03-09 00:02
Op vrijdag 24 mei 2002 11:48 schreef Bosmonster het volgende:

[..]
Of moet ik het toch maar voorkauwen? :)
dat zou wel prettig zijn want ik snap er nog niet veel van.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

je probleem ligt veel simpeler, namelijk dat je dit wilt genereren:

/\[b=0\]/g

wat jouw code nu genereert (zelfs met \\[) is dit:

/[b=0]/g

oplossing is dus dit:

"/\\[b="+i+"\\\]/g" :)

dus:
code:
1
outputtekst = outputtekst.replace(eval("/\\[b="+i+"\\\]/g"), "<b>");

ps ik vin eval() met regexp's makkelijker dan new RegExp().. maar je kan het ook aanpassen naar new RegExp :)

  • marcrenzo
  • Registratie: September 2001
  • Laatst online: 03-09 00:02
Op vrijdag 24 mei 2002 12:01 schreef Bosmonster de oplossing voor marcrenzo's probleem:
Ah, geweldig, dat werkt perfect, reuze bedankt. :) ;) :D

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

sorry voor die loze replies in het begin.. ik had niet goed gelezen en dacht dat je wat anders wilde... :P
Pagina: 1