71 votes

Regex pour extraire la sous-chaîne, renvoyant 2 résultats pour une raison quelconque

J'ai besoin de faire beaucoup de choses regex en javascript mais j'ai des problèmes avec la syntaxe et je n'arrive pas à trouver une ressource définitive à ce sujet ... pour une raison quelconque lorsque je le fais:

 var tesst = "afskfsd33j"
var test = tesst.match(/a(.*)j/);
alert (test)

ça montre

 "afskfsd33j, fskfsd33"

Je ne sais pas pourquoi il donne cette sortie de l'original et la chaîne correspondante, je me demande comment je peux l'obtenir pour simplement donner la correspondance (en extrayant essentiellement la partie que je veux de la chaîne d'origine)

Merci pour tout conseil

116voto

Jacob Relkin Points 90729

match renvoie un tableau.

La représentation sous forme de chaîne par défaut d'un tableau en JavaScript est constituée des éléments du tableau séparés par des virgules. Dans ce cas, le résultat souhaité est dans le deuxième élément du tableau:

 var tesst = "afskfsd33j"
var test = tesst.match(/a(.*)j/);
alert (test[1]);

5voto

BillP3rd Points 949

Je pense que votre problème est que la méthode de correspondance renvoie un tableau. Le 0ème élément du tableau est la chaîne d'origine, les 1er à nième éléments correspondent aux 1er à nième éléments mis entre parenthèses. Votre appel "alert ()" affiche le tableau entier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X