Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var isNode = typeof process != 'undefined' && {}.toString.call(process) == '[object process]';
if (typeof document == 'object' && document.createElement) {
url = document.createElement('a');
url.href = str;
return url;
} else {
return url.parse(str);
}
url = document.createElement('a');Это не очень хороший способ вытащить данные о URL. document.createElement — довольно медленная операция, и если вам надо распарсить 10000 ссылок в цикле, то это может ощутимо подвесить браузер.
url.href = str;
return url;
var span = document.createElement("span");
span.innerHTML = str;
var filtered_str = span.innerText;
Это и было самым ресурсоёмким местом. С тех пор я помню, что создание элементов DOM — не самая быстрая операция, можно и побыстрее. В браузере, к сожалению, нет похожего метода
ftp://user#1:2@[ff:fe::1]:3128/foo/bar?q#hash
ftp://user!&1:$&*;=3@[ff:fe::1]:3128/foo/bar?q#hash
❯ node -p 'require("url").parse("ftp://user!&1:$&*;=3@[ff:fe::1]:3128/foo/bar?q#hash")'
{ protocol: 'ftp:',
slashes: true,
auth: 'user!&1:$&*;=3',
host: '[ff:fe::1]:3128',
port: '3128',
hostname: 'ff:fe::1',
hash: '#hash',
search: '?q',
query: 'q',
pathname: '/foo/bar',
path: '/foo/bar?q',
href: 'ftp://user!%261:%24%26*%3B%3D3@[ff:fe::1]:3128/foo/bar?q#hash' }
Простой разбор URL с помощью изоморфного Javascript