11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je bloque actuellement sur un problème d'expression régulière en Javascript.

Voici ma chaîne :
"Nom Prenom (id)"

Je souhaite récupérer l'id (qui est entre parenthèses).

J'ai donc fais cette expression régulière :
var regexp = new RegExp('^.+\\(\\d+\\)$', 'g');


Mais le .exec(machaine) me renvoie la chaîne entière ... Un .test(machaine) me renvoie true.

J'en déduis que mon expression régulière est incomplète, mais honnêtement je ne vois pas pourquoi ...

Donc si une bonne âme pouvais éclairer ma lanterne Smiley smile

Merci d'avance !
Modifié par simon.netc (03 Jan 2011 - 17:27)
Salut,

L'id doit être entre parenthèses pour être "capturé"... \((\d+)\)

var str= 'Nom Prénom (123)';

var regexp = /^.+\((\d+)\)$/g; // var regexp = new RegExp('^.+\\((\\d+)\\)$', 'g');

var match  = regexp.exec(str);
var result = (match!=null)?match[1]:'Non trouvé';

alert( result );

affiche... 123