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

时间:2017-02-13 17:42:43

标签: javascript regex

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

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

工作正常,但它也删除了空格,我怎样才能删除非法字符但留下空格?

4 个答案:

答案 0 :(得分:3)

您正在搜索所有非数字和罗马字母。如果您想要排除空格:

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

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

答案 1 :(得分:3)

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

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

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

console.log(filename);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

添加&#39; \ s&#39;你的排斥空白。

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

答案 3 :(得分:0)

您可以使用\ W +

  

\ W(非单词字符)匹配任何与\ w不匹配的单个字符(与[^ a-zA-Z0-9_]相同)
  来源: https://www.ntu.edu.sg/home/ehchua/programming/howto/Regexe.html

str = str.replace(/(\W+)/gi, '-');