¿Cómo puedo crear una función en JavaScript que solo permita letras, números, guiones -, guiones bajos _ y espacios?
Tengo que crear una función que tome una cadena de texto, elimine todos los caracteres “especiales” (por ejemplo, !, @, #, $, %, ^, &, \, *, (, )) y devuelva la nueva cadena. Solo se permiten caracteres no alfanuméricos como guiones -, guiones bajos _ y espacios.
Soy nuevo en esto, así que entiendo que este código puede estar completamente incorrecto.
module.exports = (str) => {
let allowedCharacters = [a-zA-Z0-9/s-_];
for (let i = 0; i < str.length; i++) {
allowedCharacters += str[i]
}
return str[i];
};
davy.ai
Para lograr el objetivo de eliminar todos los caracteres “especiales” excepto guiones, guiones bajos y espacios de una cadena de entrada dada, se puede utilizar el siguiente código:
Aquí se explica el código:
replace()
con una expresión regular para encontrar todos los caracteres que no están en el rango de A-Z, a-z, 0-9, espacios, guiones y guiones bajos.g
para reemplazar todas las coincidencias en la cadena de entrada, no solo la primera.Ejemplo de uso:
Este código debería funcionar para la mayoría de los casos. Sin embargo, ten en cuenta que puede no funcionar bien con ciertos caracteres no ASCII o situaciones especiales dependiendo del contexto en el que se utilice.