Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.12.2018, 17:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Artur_Hopf
лучше без них как нибудь
Их не стоит применять в том случае, если можно обойтись иным решением, но "как нибудь" не решит многие задачи без regexp.
Ответить с цитированием
  #12 (permalink)  
Старый 06.12.2018, 19:24
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Помогите с регуляркой.
Получаю урл страницы, нужно вытащить из неё протокол http или https.
Ответить с цитированием
  #13 (permalink)  
Старый 06.12.2018, 19:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от MC-XOBAHCK
протокол http или https.
пост №5
Ответить с цитированием
  #14 (permalink)  
Старый 06.12.2018, 19:39
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от рони Посмотреть сообщение
пост №5
В том решении я получаю массив из двух значений: домен с протоколом и просто домен
[https://javascript.ru, javascript.ru]

А мне бы теперь получить http или https.

Или это делать не через регулярку, а делать проверку на первые пять символов из урла?
Ответить с цитированием
  #15 (permalink)  
Старый 06.12.2018, 19:54
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Вот такое решение для определения протокола нормально будет?
let protocol;
let url = 'https://javascript.ru/forum';

url.charAt(4) === 's' ? protocol = 'https' : protocol = 'http';
Ответить с цитированием
  #16 (permalink)  
Старый 06.12.2018, 20:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

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 );
Ответить с цитированием
  #17 (permalink)  
Старый 06.12.2018, 20:30
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

рони,
Круто! Работает. Спасибо за помощь!

Я 10 минут не мог найти отличие от той регулярки. Потом только увидел что добавились круглые скобки.

Извините за нескромность, а можно ещё в этот массив добавить ещё один элемент который будет путь?
То есть получить из урла и эту часть:
javascript.ru/forum/misc/75836-pomogite-s-regulyarnym-vyrazheniem.html
Ответить с цитированием
  #18 (permalink)  
Старый 06.12.2018, 20:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

MC-XOBAHCK,
domain = url.match(/(^https?):\/\/(([^/]+).*)/);
Ответить с цитированием
  #19 (permalink)  
Старый 06.12.2018, 20:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

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);
__________________
29375, 35

Последний раз редактировалось Aetae, 06.12.2018 в 21:04.
Ответить с цитированием
  #20 (permalink)  
Старый 06.12.2018, 21:27
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

по поводу домена и регулярки - между // и ближайшим / могут кроме домена ещё затесаться логин, пароль и порт )
более того, / в конце может не быть, а будет # или ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с регулярным выражением Forgotten Общие вопросы Javascript 4 11.02.2014 16:38
помогите с регулярным выражением Axios Элементы интерфейса 3 13.01.2013 20:47
Помогите с регулярным выражением alerzo Элементы интерфейса 3 07.12.2012 15:59
Помогите с регулярным выражением igsavenko Общие вопросы Javascript 7 21.08.2011 19:55
помогите пожалуйста с регулярным выражением serhanters Общие вопросы Javascript 8 12.07.2011 19:17