Lo que no sabes es que el método replace usa como paramétro una expresión regular y no una cadea de texto común. Te daré un ejemplo para reemplazar todos los carácters que encuentre en una cadena.
Código PHP:
var cadena = "cadena-con-guiones";
var otraCadena = cadena.replace(/-/g, ' ');
Debes poner tal y como lo pongo, entre los dos slash la cadena de texto a reemplazar y una "g" después que le indica que debe reemplazar todas las veces que encuentre el carácter y no solo una vez.
La función que usas tiene la desventaja de hacer mucho proceso, aunque seguro no se siente. Pero en todo caso usa lo que ya tiene el lenguaje, y de paso te sugiero que aprendas un poco de expresiones regulares que te podría servir más adelante.