Tom's Guide > Forum > Programmation > [JavaScript] Récupérer tous les résultats d'une expression régulière

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

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

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 :

Code :
  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 :

Code :
  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 !

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
- 0 +

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()


Message édité par OmaR le 07-06-2008 à 19:26:12
Répondre à OmaR
Tom's Guide > Forum > Programmation > [JavaScript] Récupérer tous les résultats d'une expression régulière
Aller à :

Il y a 2080 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens