Getallen verlagen in een string

Status
Niet open voor verdere reacties.

robbiegoud

Nieuwe gebruiker
Lid geworden
16 dec 2009
Berichten
3
Heren, ik heb een vraag omtrent reguliere expressies in javascript.
Ik ben gewend te programmeren in perl, waar dit vrij eenvoudig te doen is.

Het gaat om het volgende: ik heb een string (innerHTML), waarin ik op zoek wil gaan naar getallen en deze wil verlagen met 1. De positie van de getallen is bekend.

Een voorbeeld string:

<div id="divid1">Getal: 13...</div><div id="divid2">Dit is nog een keer hetzelfde getal 13, dus verlaag deze</div>

Het resultaat moet worden:
<div id="divid1">Getal: 12...</div><div id="divid2">Dit is nog een keer hetzelfde getal 12, dus verlaag deze</div>

Alvast bedankt voor jullie hulp
 
Stukje verder

Hoi, ik heb het volgende gevonden hierop:

var regexnr1 = new RegExp(/(\d+)\.\.\./);
var regexnr2 = new RegExp(/(\d+)<img/);
var html = parent.childNodes.innerHTML;
html = html.replace(regexnr1, "$1" - 1 + "...");
html = html.replace(regexnr2, "$1" - 1 + "<img");

echter, ik krijg nu te zien als nummers: NaN.
Dit betekent dat $1 geen nummer lijt te zijn. Echter, het is het wel degelijk, want ik match op \d

Heeft iemand hier ideeen over?
Bedankt,
Rob
 
Oplossing

Hoi, ik heb nu het volgende als oplossing gevonden. Waarschijnlijk niet het meest voor de hand liggend, maar wel werkend:

var regexnr1 = new RegExp(/(\d+)\.\.\./);
var regexnr2 = new RegExp(/(\d+)<img/);
var regexnr3 = new RegExp(/\d+/);

var html = parent.childNodes.innerHTML;
var nr = regexnr3.exec((regexnr1.exec(html))[0]) - 1; //dit haalt het nummer op en haalt er 1 vanaf.
html = html.replace(regexnr1, nr + "...");
html = html.replace(regexnr2, nr + "<img");
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan