Il suffit d’utiliser les méthodes replace et toLowerCase, par exemple :
var str = "Remplacer espace par tiret";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "remplacer-espace-par-tiret"
Notez le drapeau g sur le RegExp, il effectuera le remplacement globalement dans la chaîne, s’il n’est pas utilisé, seule la première occurrence sera remplacée, et aussi, ce RegExp correspondra à un ou plusieurs espace.
La réponse ci-dessus peut être considérée comme un peu confuse. Les méthodes String ne modifient pas l’objet original. Elles retournent un nouvel objet. Il doit l’être :
var str = "Remplacer espace par tiret";
str = str.replace(/\s+/g, '-').toLowerCase();