107 votes

Pourquoi mon regex.test() javascript donne des résultats alternés

Possible Duplicate:
Javascript regex returning true.. then false.. then true.. etc

var r = /\d/g;
var a = r.test("1"); // will be true
var b = r.test("1"); // will be false
console.log(a == b); // will be false

Veuillez m'expliquer pourquoi le résultat de r.test("1") alterne à chaque appel?

J'ai pu contourner le problème que j'avais en supprimant le modificateur g. Cependant, j'aimerais toujours comprendre pourquoi cela se produit.

173voto

pkh Points 1560

Lorsque vous utilisez /g, l'objet regex enregistre l'état entre les appels (puisque vous devriez l'utiliser pour faire correspondre sur plusieurs appels). Il correspond une fois, mais les appels ultérieurs commencent après la correspondance d'origine.

(Ceci est une duplication de Javascript regex returning true.. then false.. then true.. etc)

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