Pourquoi mon javascript regex.test () donne-t-il des résultats alternatifs

Duplication possible:
Javascript regex retourne vrai … alors faux … alors vrai … 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 

Expliquez-moi pourquoi le résultat de r.test ("1") alternent avec 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.

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

(Ceci est un duplicata de Javascript regex revenant vrai … alors faux … alors vrai … etc. )