我有以下代码行从文件名中删除非法字符:
str= str.replace(/([^a-z0-9]+)/gi, '-');
工作正常,但它也删除了空格,我怎样才能删除非法字符但留下空格?
答案 0 :(得分:3)
您正在搜索所有非数字和罗马字母。如果您想要排除空格:
只需在选区中添加一个空格即可排除:)
str= str.replace(/([^a-z0-9 ]+)/gi, '-');
// add a space here -------^
答案 1 :(得分:3)
列出了非法字符here。要替换它们,请使用此正则表达式/[/\\?%*:|"<>]/g
,如下所示:
var filename = "f?:i/le> n%a|m\\e.ext";
filename = filename.replace(/[/\\?%*:|"<>]/g, '-');
console.log(filename);
&#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, '-');