@accountnujen

Как достать 'folder' и 'asd/asd' из '\folder/asd\asd/'?

Пользователь вбивает в input адрес. Он может написать
  • \folder/asd\asd/
  • \folder\asd\asd\
  • folder/asd/asd
  • folder/asd\asd

Мне нужно достать первое значение - т.е. "folder" и всё, что идёт после слеша, т.е. в данном случае, "asd/asd". Слеши могут быть и прямые и обратные, и те и другие вместе. Если разделить ещё можно через .split(/[\/\\]/), то вот с удалением слешей - сложности.

chatgpt предложил вот такой вариант
path = input.value.replace(/^\/+|\/+$/g, '');
но на выходе я получаю '\\folder/asd\\asd'

Может быть вы предложите более простой вариант, даже и не со split
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
matches ='\\folder//asd\\\\asd/'
  .replace(/\\+|\/\/+/g, '/')
  .match(/[\/]?([^\/]+)[\/](.*?)[\/]?$/);
console.log(matches[1]); // "folder"
console.log(matches[2]); // "asd/asd"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
XanXanXan
@XanXanXan
(?<=^[/\\]*)[^/\\]+(?=[/\\]+(.*))

folder будет в совпадении
остальное после слеша - в первой скобой группе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы