es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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];
};
Tags:  ,

Answer

  1. Avatar for 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:

    function removeSpecialCharacters(str) {
      return str.replace(/[^A-Za-z0-9\s-_]/g, '');
    }
    

    Aquí se explica el código:

    • Se utiliza la función 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.
    • Se utiliza la bandera g para reemplazar todas las coincidencias en la cadena de entrada, no solo la primera.
    • La función devuelve la cadena modificada con todos los caracteres “especiales” eliminados.

    Ejemplo de uso:

    let input = 'Esta cadena contiene! algunos caracteres especiales#$';
    let output = removeSpecialCharacters(input);
    console.log(output);  // "Esta cadena contiene algunos caracteres especiales"
    

    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.

Comments are closed.