如何在 javascript 中创建一个只允许字母、数字、破折号 -、下划线 _ 和空格的函数?

How do I create a function in javascript that only allows letters, numbers, dashes -, underscores _ and spaces?

我必须创建一个函数,它接受一个字符串,删除所有“特殊”字符(例如 !、@、#、$、%、^、&、、*、(、))和 returns 新字符串。唯一允许的非字母数字字符是破折号 -、下划线 _ 和空格。

我是新手,所以我知道这段代码可能全错了。

module.exports = (str) => {
let allowedCharacters = [a-zA-Z0-9/s-_];
for (let i = 0; i < str.length; i++) {
    allowedCharacters += str[i]
}
return str[i];
};

使用正则表达式替换:

let forbiddenCharacters = new RegExp("[^a-zA-Z0-9\s-_]", "g");
return str.replace(forbiddenCharacters, "");

您可以使用 RegEx 的字符串替换功能。在括号内声明您想要允许的字符 a-z A-Z 0-9 -_/g 代表全局,用于使替换不会在第一个替换字符处停止。

let testString = '!@#$%^&*()+_- 33252qweqreteEWUJHGFA';
let resultString = testString.replace(/[^a-zA-Z0-9-_ ]/g, '');

console.log(resultString);