#javascript
#javascript
Вопрос:
Вот рабочий код, который я должен получить определенную часть строки URL:
const movieName = "frozen_2019";
const courseName = "olaf_is_enjoying_living_his_dream_1";
const source = "your majesty from https://example.com/english/courses/frozen_2019/olaf_is_enjoying_living_his_dream_1/voices/references/translate/do you hear that.mp3";
console.log(getSourceError(source)); // result
function getSourceError(source) {
const a = source.substring(source.indexOf(courseName) courseName.length 1);
const b = a.substring(a.lastIndexOf("/"));
return a.replace(b , "");
}
Хотя это работает так, как ожидалось, но я думаю, что для этого должно быть более чистое решение…
Как вы видите, мне нужна строка между courseName
и file name
в конце URL-адреса.
Комментарии:
1. Что, если вы можете сделать что-то вроде
source .split('/').splice(7,3).join('/')
Ответ №1:
Я не совсем уверен, что вы подразумеваете под более чистым решением, но это однострочная строка с регулярным выражением, предполагающая, что вы получили те же имена переменных, что и в вашем фрагменте. Это то, чего вы хотели достичь? Вы можете обрезать последний и первый символ, чтобы удалить косые черты, если это необходимо.
const source = "your majesty from https://example.com/english/courses/frozen_2019/olaf_is_enjoying_living_his_dream_1/voices/references/translate/do you hear that.mp3";
const courseName = "olaf_is_enjoying_living_his_dream_1";
let extracted = source.match("(?<=" courseName ").*/");
console.log(extracted);
Ответ №2:
Как вы видите, мне нужна строка между именем курса и именем файла в конце URL-адреса.
При работе со строками URL-адреса часто рекомендуется разбить строку на массив с помощью:
let myURLArray = myURLString.split('/');
Затем в этой ситуации вы можете использовать:
indexOf()
splice()
join()
чтобы вернуть нужную часть URL-адреса.
Рабочий пример:
const courseName = "olaf_is_enjoying_living_his_dream_1";
const source = "your majesty from https://example.com/english/courses/frozen_2019/olaf_is_enjoying_living_his_dream_1/voices/references/translate/do you hear that.mp3";
let sourceArray = source.split('/');
let courseNameIndex = sourceArray.indexOf(courseName);
let urlSectionArray = sourceArray.splice((courseNameIndex 1), ((sourceArray.length - 1) - courseNameIndex - 1));
let urlSection = urlSectionArray.join('/');
console.log(urlSection);
Ответ №3:
Привет, если ваш источник соответствует его структуре, вы можете разделить и соединить нужные вам части.
source.split('/').splice(7,3).join('/')