@tunait, el ejemplo que pones falla cuando en la cadena donde quieres reemplazar existe lo que quieres reemplazar mas de una vez..
Ejemplo: en esto quiero reemplazar " " (espacio) por "-" (guion)
Utilizando tu forma y pasandole esto como cadena: "Este es el ejemplo que funciona"
cadena = cadena.replace(/ /i, "-");
Da como resultado:
Este-es%20el%20ejemplo%20que%20funciona
Como vez, solo reemplaza la primera vez que aparece el " " (espacio)
Lo recomendable para que te trabaje en la cadena completa es usar esta forma:
cadena = cadena.split(" ").join("-");
que da como resultado:
Este-es-el-ejemplo-que-funciona
Espero que sirva!!!!! =)