Tengo que crear una función que tome una cadena, elimine todos los caracteres "especiales" (p. ej., !, @, #, $, %, ^, &, , *, (, )) y devuelva la nueva cadena. Los únicos caracteres no alfanuméricos permitidos son guiones -, guiones bajos _ y espacios.
Soy nuevo en esto, así que entiendo que este código puede estar TODO mal.
module.exports = (str) => { let allowedCharacters = [a-zA-Z0-9/s-_]; for (let i = 0; i < str.length; i++) { allowedCharacters += str[i] } return str[i]; };Utilice el reemplazo de expresiones regulares:
let forbiddenCharacters = new RegExp("[^a-zA-Z0-9\\s-_]", "g"); return str.replace(forbiddenCharacters, "");Puede usar la función de reemplazo de cadena con RegEx. Dentro de los paréntesis declara los caracteres que desea permitir az AZ 0-9 - y _ . /g significa global y se usa para que el reemplazo no se detenga en el primer carácter reemplazado.
let testString = '!@#$%^&*()+_- 33252qweqreteEWUJHGFA'; let resultString = testString.replace(/[^a-zA-Z0-9-_ ]/g, ''); console.log(resultString);