Reemplace los espacios con guiones y ponga todas las letras en minúsculas

Resuelto EzzDev asked hace 14 años • 7 respuestas

Necesito reformatear una cadena usando jQuery o JavaScript básico

Digamos que tenemos "Sonic Free Games".

Quiero convertirlo a "sonic-free-games".

Por lo tanto, los espacios en blanco deben reemplazarse por guiones y todas las letras deben convertirse en letras minúsculas.

¿Alguna ayuda con esto por favor?

EzzDev avatar Dec 31 '09 09:12 EzzDev
Aceptado

Simplemente use String replacey toLowerCasemétodos, por ejemplo:

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

Observe la gbandera en RegExp, realizará el reemplazo globalmente dentro de la cadena; si no se usa, solo se reemplazará la primera aparición y, además, coincidirá con RegExpuno o más caracteres de espacio en blanco.

Christian C. Salvadó avatar Dec 31 '2009 02:12 Christian C. Salvadó

Se puede considerar que la respuesta anterior es un poco confusa. 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
Yuriy N. avatar Feb 19 '2015 10:02 Yuriy N.

También puedes usar splity join:

"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
Eesa avatar May 22 '2016 18:05 Eesa

Si tienes lodash en tu proyecto, puedes probar kebabCase

_.kebabCase('Sonic Free Games')

https://lodash.com/docs/4.17.15#kebabCase

 avatar Jun 10 '2021 12:06