如何在 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);
我必须创建一个函数,它接受一个字符串,删除所有“特殊”字符(例如 !、@、#、$、%、^、&、、*、(、))和 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);