Javascript 删除除下划线、破折号和数字以外的所有字符和特殊字符

Javascript 删除除下划线、破折号和数字以外的所有字符和特殊字符,javascript,regex,Javascript,Regex,当前在删除字符串中除“25;”、““-”和数字以外的所有字母字符时出现问题。我的字符串如下所示 let str = '/Anna-Charoline_1985-02-14_London/'; 我尝试了以下代码来删除不需要的字符 let formatted = str.replace(/[D&\/\\#,+()$~%.'":*?<>{}]/g, ''); let formatted=str.replace(/[D&\/\\\\\\\\,+()$~%.':*?{}]/g',)

当前在删除字符串中除“25;”、““-”和数字以外的所有字母字符时出现问题。我的字符串如下所示

let str = '/Anna-Charoline_1985-02-14_London/';
我尝试了以下代码来删除不需要的字符

let formatted = str.replace(/[D&\/\\#,+()$~%.'":*?<>{}]/g, '');
let formatted=str.replace(/[D&\/\\\\\\\\,+()$~%.':*?{}]/g',);
它不起作用。有人能帮我吗?预期输出是
\u 1985-02-14

使用否定字符类更容易:

str.replace(/[^0-9_-]/g, '');
所有不是介于0和9之间的数字、下划线或减号的内容都将替换为空字符串


(第一个
-
在这里表示“范围”,因为它位于其他两个字符之间,第二个仅表示“自身”,因为它位于字符类的末尾。如果它放置在起始或结尾以外的某个位置,则需要对其进行转义,
\-

使用否定字符类会更容易些/[^0-9.-]/g上面所说的+您忘记添加a-zA-Z选择器来删除字母。
str.replace(/[a-zA-ZD&\/\\\\\\\\\\\\\\\\\\\\\\\,+()$~%.”:*?{}]/g')