Цитата:
|
Помогите с регуляркой.
Получаю урл страницы, нужно вытащить из неё протокол http или https. |
Цитата:
|
Цитата:
[https://javascript.ru, javascript.ru] А мне бы теперь получить http или https. Или это делать не через регулярку, а делать проверку на первые пять символов из урла? |
Вот такое решение для определения протокола нормально будет?
let protocol; let url = 'https://javascript.ru/forum'; url.charAt(4) === 's' ? protocol = 'https' : protocol = 'http'; |
MC-XOBAHCK,
var url = prompt(\'Введите URL\', \'https://javascript.ru/forum/misc/75836-pomogite-s-regulyarnym-vyrazheniem.html\');
if( !url ) { alert(url); throw new Error(); }
domain = url.match(/(^https?):\/\/([^/]+)/);
if( !domain ) { alert(domain); throw new Error(); }
console.log(domain);
alert( domain );
|
рони,
Круто! Работает. Спасибо за помощь! Я 10 минут не мог найти отличие от той регулярки. Потом только увидел что добавились круглые скобки. Извините за нескромность, а можно ещё в этот массив добавить ещё один элемент который будет путь? То есть получить из урла и эту часть: javascript.ru/forum/misc/75836-pomogite-s-regulyarnym-vyrazheniem.html |
MC-XOBAHCK,
domain = url.match(/(^https?):\/\/(([^/]+).*)/); |
var url = new URL('https://javascript.ru/forum');
alert(url.protocol);
alert(url.pathname);
в старых браузерах можно просто:
var url = document.createElement('a');
url.href = 'https://javascript.ru/forum';
alert(url.protocol);
alert(url.pathname);
|
по поводу домена и регулярки - между // и ближайшим / могут кроме домена ещё затесаться логин, пароль и порт )
более того, / в конце может не быть, а будет # или ? |
| Часовой пояс GMT +3, время: 13:46. |