Se connecter / S'enregistrer
Votre question

[JavaScript] Récupérer tous les résultats d'une expression régulière

Tags :
  • Match
  • Programmation
Dernière réponse : dans Programmation
4 Juin 2008 11:35:40

Bonjour

J'aimerais récupérer tous les résultats satisfaisant un masque avec une expression régulière en JavaScript.

Je m'explique :

J'ai par exemple le code HTML suivant :

  1. <p align="left">Un premier paragraphe</p>
  2. <p align="center">Un deuxième paragraphe centré</p>
  3. <p align="left">Un dernier paragraphe</p>


... et j'aimerais en extraire chaque paragraphe sans les balises <p>.

J'applique donc la regexp suivante '<p(.*)>(.*)</p>' avec la fonction match :

  1. var resultat = html.match(new RegExp('<p(.*)>(.*)</p>', 'gi'));


Mais au lieu d'obtenir (comme je le souhaiterais) ceci :

resultat[0] = 'Un premier paragraphe'
resultat[1] = 'Un deuxième paragraphe centré'
resultat[2] = 'Un dernier paragraphe'

... j'obtiens à la place ceci :

resultat[0] = '<p align="left">Un premier paragraphe</p>'
resultat[1] = ' align="left"'
resultat[2] = 'Un premier paragraphe'

et si j'essaie d'aller plus loins dans le tableau j'obtiens 'undefined'.

La fonction match ne s'en tient donc qu'à la première correspondance trouvée et ne stocke dans un tableau que chaque élément parenthésé (en plus de l'expression entière), et de même pour exec.

N'y a t'il pas une fonction ou un autre moyen qui permette de retourner toutes les expressions correspondantes au masque défini par la regexp ??

Merci beaucoup de vos réponses !

Autres pages sur : javascript recuperer resultats expression reguliere

a c 232 L Programmation
7 Juin 2008 19:24:04

Salut,

La fonction match retourne tous les résultats entre parenthèses ainsi que le résultat total.
Donc dans ton cas,
<p(.*)>(.*)</p> => elle trouve <p align="left">Un premier paragraphe</p>
(.*) => elle trouve align="left"
(.*) = elle trouve le contenu du paragraphe


Il faut que tu utilises je pense plutôt RegExp.exec()
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS