Код (PHP): /^ # Схема ((ftp|http|https)://)? # Логин и пароль (\w:\w@)? # Хост ( # IP ( (1?\d?\d|2[0-4]\d|25[0-5])\.){3,3} (1?\d?\d|2[0-4]\d|25[0-5]) ) | # Домен ( ( # Больше второго уровня ([\wа-я-]{0,255}\.){0,127} ([\wа-я-]{1,63}\.) | # Второй уровень ([\wа-я-]{0,63}\.)) )? # Первый уровень ([\wа-я]{2,} ) # Порт ( : ( \d{2,5} (:\d{2,5})? ) )? # Путь. Люди ведь в пути могут писать любой бред? (.*)? # Параметры (\?\w*)? # Якорь (\#\w*)? ) $/ Вот моя регулярка. Меня интересует какие есть ограничения в логине, пароле, пароле, порте, параметрах и якоре. Попробовал погуглить не чего толкового не нашёл. Думаю \w* не достаточно, так как лубой бред пройдёт по регулярке.
https://habrahabr.ru/post/252533/ Код (PHP): var url = document.createElement('a'); url.href = 'http://example.com:81/path/page?a=1&b=2#hash'; console.log( url.href + '\n' + // the full URL url.protocol + '\n' + // http: url.hostname + '\n' + // example.com url.port + '\n' + // 81 url.pathname + '\n' + // /path/page url.search + '\n' + // ?a=1&b=2 url.hash // #hash );
Достаточно странно, не когда бы не подумал что так можно распарсить url. Добавлено спустя 41 секунду: А я тут регуялярки писал)))