如何在JavaScript中使用“ \\”或“ /”作为分隔符(即在单个正则表达式中)将字符串拆分为数组?

时间:2019-10-13 00:36:05

标签: javascript arrays regex string

我正在尝试分割任意文件路径,例如:

"c:\\directory\\another_directory\\filename.ext"(Windows操作系统)

OR

"c:/directory/another_directory/filename.ext"(UNIX)

放入一个数组,由“ \\”或“ /”分隔(取决于在其中读取文件路径字符串的操作系统)。

所需的输出是一个数组,例如:

['c:', 'directory', 'another_directory', 'filename.txt']

在分割方法中可以使用的正则表达式是什么?

str.split(new RegExp(/(\\|/)/i)) (无效的正则表达式)

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用.match,并匹配既不是斜杠也不是反斜杠的字符:

const doSplit = str => str.match(/[^/\\]+/g);

console.log(doSplit(String.raw`c:\\directory\\another_directory\\filename.ext`));
console.log(doSplit("c:/directory/another_directory/filename.ext"));