#javascript
#javascript
Вопрос:
row1: 10016/Documents/folder1/abc.pdf
row2: 10016-10017/10017/Documents/folder1/folder2/xyz.pdf
Я пытаюсь получить строку до /Documents, но если есть какой-либо / before, мне нужно получить строку после этого
В строке 1 мне нужно получить 10016
В строке 2 мне нужно получить 10017
Я пытался
var output = filepath.split("/").slice(0,1);
Ответ №1:
Вы можете разделить на ‘/ Documents /’, попробуйте это:
let str = '10016/Documents/abc.pdf';
console.log(str.split('/Documents/')[0])
Комментарии:
1. для строки 2 он извлекает 10016-10017 / 10017, в то время как я ищу o / p только 10017
Ответ №2:
Разделите на /Documents/
, затем разделите это на /
и получите конечный элемент:
const row1 = "10016/Documents/folder1/abc.pdf";
const row2 = "10016-10017/10017/Documents/folder1/folder2/xyz.pdf";
let docs = row1.split("/Documents/")[0];
let nums = docs.split("/");
nums = nums[nums.length - 1];
console.log(nums);
docs = row2.split("/Documents/")[0];
nums = docs.split("/");
nums = nums[nums.length - 1];
console.log(nums);
Это работает для обоих row1
и row2
, как вы можете видеть.
Ответ №3:
Вы можете использовать регулярное выражение, чтобы получить это
([a-zd] )/Documents
Объяснение регулярного выражения
- Захватывайте все, что содержит одно или несколько вхождений (
(a-z)
или цифры(/d)
- Также убедитесь, что этот набор символов находится прямо перед
/Documents
фразой
let result = RegExp(/([a-zd] )/Documents/).exec('10016/Documents/abc.pdf');
if (result) { console.log(result[1]) }
result = RegExp(/([a-zd] )/Documents/).exec('10016-10017/10017/Documents/xyz.pdf');
if (result) { console.log(result[1]) }