Skip to content

Commit 115affd

Browse files
committed
[EX-8.10/st-compl] url-parsing
Splitting URL into "specified" parts. Returning detailed/composite msg. Worth noting: - alternative solutions (a few variants.. filter(), replace(), slice()). FS-dev: B-3 / JS basic
1 parent 85c6b0a commit 115affd

File tree

1 file changed

+36
-0
lines changed
  • full-stack-dev/3-js-basic/8-arrays/8-10-ex-url-parsing

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Дан произвольный url вида - "https://purpleschool.ru/course/javascript"
2+
// Нужно сделать функцию getUrlParts, которая выводит в консоль:
3+
// - Протокол "https"
4+
// - Доменное имя "purpleschool.ru"
5+
// - Путь внутри сайта "/course/javascript"
6+
// Используйте split(), join() методы. Оператор ...REST.
7+
// Организуйте проверку на корректность входящего url.
8+
9+
const url = 'https://purpleschool.ru/course/javascript';
10+
const url2 = 'http://purpleschool.ru/course/react';
11+
const url3 = 'ftp://purpleschool.ru/course/git';
12+
const url4 = 'https://purpleschoolru/course/html&css';
13+
14+
function getUrlParts(url) {
15+
if (!url.startsWith('http://') && !url.startsWith('https://')) {
16+
return `Ошибка в протоколе! Должен быть http или https!`;
17+
}
18+
19+
// const [protocol, domain, ...path] = url.split('/').filter(Boolean);
20+
const [protocol, , domain, ...path] = url.split('/');
21+
22+
if (!domain.includes('.')) {
23+
return `Ошибка в доменном имени!`;
24+
}
25+
26+
// return `Протокол - ${protocol.replace(':', '')}, доменное имя - ${domain}, путь - /${path.join('/')}`;
27+
// return `Протокол - ${protocol.slice(0,-1)}, доменное имя - ${domain}, путь - /${path.join('/')}`;
28+
return `Протокол - ${
29+
protocol.split(':')[0]
30+
}, доменное имя - ${domain}, путь - /${path.join('/')}`;
31+
}
32+
33+
console.log(getUrlParts(url)); // "Протокол - https, доменное имя - purpleschool.ru, путь - /course/javascript"
34+
console.log(getUrlParts(url2)); // "Протокол - http, доменное имя - purpleschool.ru, путь - /course/react"
35+
console.log(getUrlParts(url3)); // "Ошибка в протоколе! Должен быть http или https!"
36+
console.log(getUrlParts(url4)); // "Ошибка в доменном имени!"

0 commit comments

Comments
 (0)