la funcion replace de javascript solo reemplaza la primera aparicion de un elemento.
para realizar un reemplazar todo se debe recurrir a las expresiones regulares, el metodo replace las acepta como primer parámetro.
Ejemplo:
frase4 = frase.replace(/dos/gi,'nueve');
Se reemplazaran todas las coincidencias de "dos" por "nueve", y que es el /gi.
- /esto/ es para que reemplace la primera aparición de "esto" case sensitive
- /esto/g es para que reemplace la primera aparición de "esto" globalmente
- /esto/i es para que reemplace la primera aparición de "esto" case INsensitive
- /esto/gi es para que reemplace la primera aparición de "esto" globalmente y case INsensitive
Fuente
Saludos