我有以下代码行可从文件名中删除非法字符:
str= str.replace(/([^a-z0-9]+)/gi, '-');
Run Code Online (Sandbox Code Playgroud)
效果很好,但它也删除了空格,我如何才能只删除非法字符却留出空格?
ibr*_*rir 11
此处列出了非法字符。要替换它们,请使用此正则表达式,/[/\\?%*:|"<>]/g
如下所示:
var filename = "f?:i/le> n%a|m\\e.ext";
filename = filename.replace(/[/\\?%*:|"<>]/g, '-');
console.log(filename);
Run Code Online (Sandbox Code Playgroud)
您可以使用 \W+
\W(非单词字符)匹配与 \w 不匹配的任何单个字符(与 [^a-zA-Z0-9_] 相同)
来源: https ://www.ntu.edu.sg/home /ehchua/programming/howto/Regexe.html
str = str.replace(/(\W+)/gi, '-');
Run Code Online (Sandbox Code Playgroud)
您正在搜索所有非数字和罗马字母。如果要排除被替换的空间:
只需在选择中添加一个空格即可排除:)
str= str.replace(/([^a-z0-9 ]+)/gi, '-');
// add a space here -------^
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6449 次 |
最近记录: |