2012-09-03 4 views
0
var str = "<example>{{var=b|arg=args|link=c|testing=test1}}</example>"; 

Comment utiliser regex pour correspondre à args? En d'autres termes, je veux faire correspondre la chose qui suit arg= mais avant la prochaine |.Regex en Javascript

+0

Rebeca, qu'est-ce que vous avez déjà essayé? – davidbuzatto

+0

J'espère que vous n'essayez pas d'effectuer une analyse XML ou HTML avec regex. – zzzzBov

Répondre

3
var match = str.match(/arg=([^|]+)/); 

Ensuite, vérifiez s'il existe match[1]. Et si elle le fait - il contient ce que vous voulez

UPD:

comme @nnnnnn a souligné - au lieu de vérifier pour match[1] présence, il serait plus correct de vérifier si match n'est pas null comme:

if (match) { 
    // match[1] here contains required info 
} 
+0

Super merci! –

+1

Notez que la vérification 'correspondance [1]' donnera une erreur s'il n'y avait pas de match: vous devez tester si 'match' est nul ... Ok – nnnnnn

+0

vérifiera' match' merci. –

1

Quelque chose comme ceci:

var args = str.match(/arg=([^|]*)/); 
if (args != null) { 
    // args[1] contains the match... 
} 

T chapeau est, trouver arg=, puis capturer le zéro ou plusieurs caractères suivants qui ne sont pas |.