从文件名中删除非法字符但保留空格

新手上路,请多包涵

我有以下代码行来从文件名中删除非法字符:

 str= str.replace(/([^a-z0-9]+)/gi, '-');

这很好用,但它也删除了空格,我怎么能只删除非法字符而保留空格呢?

原文由 user3378165 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 940
2 个回答

此处 列出非法字符。要替换它们,请使用此正则表达式 /[/\\?%*:|"<>]/g 如下所示:

 var filename = "f?:i/le>  n%a|m\\e.ext";

filename = filename.replace(/[/\\?%*:|"<>]/g, '-');

console.log(filename);

原文由 ibrahim mahrir 发布,翻译遵循 CC BY-SA 3.0 许可协议

您正在搜索所有非数字和罗马字母。如果要排除空间被替换:

只需在选择中添加一个空格即可排除 :)

 str= str.replace(/([^a-z0-9 ]+)/gi, '-');
// add a space here -------^

原文由 Pineda 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题