Reemplace espacios con guiones y haga todas las letras minúsculas

Necesito volver a formatear una cadena usando jQuery o JavaScript vainilla

Digamos que tenemos "Sonic Free Games" .

Quiero convertirlo en "sonic-free-games" .

Por lo tanto, los espacios en blanco deben reemplazarse por guiones y todas las letras convertidas en letras pequeñas.

¿Alguna ayuda en esto, por favor?

Solo use los métodos String replace y toLowerCase , por ejemplo:

 var str = "Sonic Free Games"; str = str.replace(/\s+/g, '-').toLowerCase(); console.log(str); // "sonic-free-games" 

Observe el indicador g en RegExp , hará el reemplazo globalmente dentro de la cadena; si no se usa, solo se reemplazará la primera ocurrencia, y también, que RegExp coincidirá con uno o más caracteres de espacio en blanco.

La respuesta anterior puede considerarse confusa un poco. Los métodos de cadena no modifican el objeto original. Devuelven nuevo objeto. Debe ser:

 var str = "Sonic Free Games"; str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str 

También puedes usar split y join :

 "Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games