Javascript: как получить корневой каталог из пути

#javascript #regex #filepath

#javascript #регулярное выражение #путь к файлу

Вопрос:

У меня есть путь к файлу, например. "/abc/xyz/123/file.txt" . Как я могу получить корневой каталог, т.Е. «abc», по этому пути. Я попробовал следующий код:

 var path = "/abc/xyz/123/file.txt";
var rootDir = path.split("/")[1];
  

Это работает для приведенного выше примера. Но путь также может быть в следующих форматах:

 1. "abc/xyz/123/file.txt"
2. "abcxyz123file.txt"(backslash instead of forward slash path separator)
  

Как это сделать, охватывая все сценарии? Можно ли это сделать с помощью regex ?

Ответ №1:

попробуйте это match(/[^/\] /)

 var reg = /[^/\] /

console.log( "abc/xyz/123/file.txt".match(reg) )
console.log( "/abc/xyz/123/file.txt".match(reg) )
console.log( "\abc\xyz\123\file.txt".match(reg) )  

Комментарии:

1. Допустимо ли использовать разделитель путей как нечто отличное от «/» в разных ОС?

2. нет, не думаю, что так … было бы ужином странно иначе