Toon posts:

[JS] RegExp - Match onthouden bij een 'or-match'

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb nu de onderstaande functie geschreven, en deze werkt voor enkele matches prima, maar bij meerdere matches (or-matches) krijg ik een 'undefined' terug voor het tweede te matchen argument. Ik krijg uit het onderstaande voorbeeld dus 'appel' en 'undefined' i.p.v. 'appel' en 'peer'. Zien jullie wat ik fout doe?

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function RegExpMatchAll(sIptSearch, sIptSubject)
{
    var iRegExp = new RegExp(sIptSearch, 'g');
    var sResult = new Array();
    var i = 0;
    
    while ((sTempResult = iRegExp.exec(sIptSubject)) !== null) 
    {
        sResult[i] = sTempResult[1];
        i++;
    }
    
    return(sResult);
}

var sTest = RegExpMatchAll('(appel)|(peer)', 'wil je een appel of toch liever een peer?');

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:44

crisp

Devver

Pixelated

probeer het eens zo:

JavaScript:
1
var sTest = RegExpMatchAll('(appel|peer)', 'wil je een appel of toch liever een peer?');

Intentionally left blank


Verwijderd

Topicstarter
Ja het werkt. Thanks!

Verwijderd

Topicstarter
Hoe pas ik nu dat zelfde 'trucje' toe bij het onderstaande voorbeeld, aangezien ik alleen de naam wil verkrijgen en dus niet de hele 'name="naam"'.
JavaScript:
1
var sTest = RegExpMatchAll('(textarea)|name="(.+?)"', '<div align="center"><input type="hidden" value="1" name="hidContestPositionIDs[iKey]"><input type="text" size="20" maxlength="20" value="1" name="txtContestPositions[iKey]" class="cssMainTextFields"></div><textarea>');

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:44

crisp

Devver

Pixelated

kijken of sTempResult[1] gevuld is, en anders sTempResult[2] nemen ;)

Intentionally left blank


Verwijderd

Topicstarter
Ok. Bedankt!
Pagina: 1