Mi sono imbattuto in un fatto sorprendente (per me).
console.log("asdf".replace(/.*/g, "x"));
Perché due sostituzioni? Sembra che qualsiasi stringa non vuota senza newline produrrà esattamente due sostituzioni per questo modello. Usando una funzione di sostituzione, posso vedere che la prima sostituzione è per l'intera stringa e la seconda per una stringa vuota.
"aa".replace(/b*/, "b")ottenere babab. E ad un certo punto abbiamo standardizzato tutti i dettagli di implementazione dei browser web.
"asdf".match(/.*/g)return ["asdf", ""]