Je suis tombé sur un fait surprenant (pour moi).
console.log("asdf".replace(/.*/g, "x"));
Pourquoi deux remplacements? Il semble que toute chaîne non vide sans retour à la ligne produira exactement deux remplacements pour ce modèle. En utilisant une fonction de remplacement, je peux voir que le premier remplacement est pour la chaîne entière et le second pour une chaîne vide.
"aa".replace(/b*/, "b")
aboutir babab
. Et à un moment donné, nous avons normalisé tous les détails de mise en œuvre des navigateurs Web.
"asdf".match(/.*/g)
return ["asdf", ""]