2010-07-12 14 views
3

Je comprends que .match() retourne un tableau des résultats, ou null si aucun n'est trouvé. Mais comment puis-je accéder aux valeurs des groupes de capture utilisés avec .match?Besoin d'aide pour comprendre la méthode .match de Javascript

Par exemple:

var val = whatever.match('(?:^|;) ?' + stuff + '=([^;]*)(?:;|$)'); 

En supposant l'expression régulière correspond à plus d'une fois, comment puis-je accéder à la valeur du groupe de capture dans un match particulier?

Merci!

Répondre

4

Utilisez la notation de tableau: [0], [1], etc.

var val = whatever.match('(?:^|;) ?' + stuff + '=([^;]*)(?:;|$)'); 
if(val != null) { 
    var first = val[0]; 
    //... 
} 
+1

droit, mais si l'expression régulière correspond à plus d'un élément, val lui-même est déjà un tableau à droite? Donc, val [0] retournera juste le premier match. – Alex

+1

Correct. Si la valeur renvoyée par 'match' est non nulle, il s'agit d'un tableau. –

+1

le dialogue de vos gars a éclairci juste ce qui me déroutait tout à l'heure. Merci. – govinda