Este es el código que estoy usando (pero solo funciona para guiones, no para espacios)
console.log( "some - text".replace(/\s\-/g, '').toLowerCase() )¿Alguien puede señalar qué está mal en este RegEx?
La expresión regular que tiene elimina el espacio y el guión, dejando el segundo espacio
Necesita otra expresión regular para eliminar todos los espacios
console.log( "some - text".replace(/\s\-/g, '') // space and dash ) console.log( "some - text".replace(/\s-\s/g, '') // space before and after a dash ) console.log( "some - text".replace(/\s+\-\s+/g, '') // any whitespace before and after ) console.log( "so- me - te-xt".replace(/\s|-/g, '') // all spaces and all dashes, can be written as a acharacter class [\s-] )Use \W para caracteres que no sean palabras:
console.log("some - text".replace(/\W/g, '').toLowerCase())Su expresión regular coincide con "(1 aparición de algún espacio) (definitivamente seguido de 1 aparición de ad ash)". Desea que coincida con cualquier ocurrencia de esos, así que use una clase de carácter en su expresión regular (ver: MDN WebDocs: Clases de caracteres de JavaScript , con corchetes, /[\s\-]/g , así:
console.log( "some - text".replace(/[\s-]/g, '').toLowerCase() )¿Quieres reemplazar a otro personaje? Solo tíralo a la clase y listo.