经常会用 JS 根据页面元素拼接成命令行语句用于生成实现的文件,而 Windows 文件名不允许使用的字符需要过滤到;

文件名不能包含下列任何字符:

\/:*?”<>|

1
2
3
4
5
6
7
8
9
10
(function () {
  // \/:*?"<>|

  // [\\|\/|:|\*|\?|"|<|>|\|]
  let str = '1\\2/3:4*5?6"7<8>9|';
  str = str.replace(/\\|\/|:|\*|\?|"|<|>|\|/g"");
  console.log(str);
  // 123456789
})();

实际使用中,[\s&=#]等字符也可能导致一些问题;