Je veux trouver une partie d’une chaîne à l’aide d’une expression régulière, puis accéder à la sous-chaîne entre parenthèses :
var str = "hello world_xyz"; // je veux "xyz"
var tab = /(?:^|\s)world_(.*?)(?:\s|$)/.exec(str);
console.log(tab); // Affiche: [" world_xyz", "xyz"] .. Jusqu'ici, tout va bien.
console.log(tab[1]); // Affiche: undefined (???)
console.log(tab[0]); // Affiche: world_undefined (!!!)
Que dois-je faire ?
Henri
2
ton code fonction correctement, voici ce que s’affiche:
[
" world_xyz",
" xyz"
]
xyz
world_xyz
Je sais pas où le problème.
denis
3
Bonjour @camelia,
au lieu d’utiliser exec()
, utiliser match()
. Voici un exemple:
var str = "hello world_xyz";
var arr = str.match(/\bworld_(.*?)\b/);
console.log(arr[0] + " " + arr[1]);
Cela affiche:
world_xyz xyz
N’oubliez pas le \b
qui joue le rôle de délimiteur.