Я пытаюсь получить расширение домена по URL с jQuery. Но не уверен, как охватить все возможные сценарии ios. Выделены части, которые мне нужно получить по URL;
https://www.amazon.**com**/dp/067144901X https://www.amazon.**co.uk**/dp/067144901X https://www.amazon.**it**/dp/067144901X https://www.amazon.**de**/dp/067144901X
$(".get").on('click', function(event) { var DomainEX = $('#url').val(); alert(DomainEX); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="url"> <button class="get">GET</button>
Вы можете конвертировать в URL, получить имя хоста:
const hostName = (new URL('https://www.amazon.com/dp/067144901X')).hostname;
Затем извлечь все, что идет после имени сайта:
const extension = hostName.split('amazon').pop()
//https://www.amazon.com/dp/067144901X //https://www.amazon.co.uk/dp/067144901X function getDomainExtension(url, siteName) { const hostName = (new URL(url)).hostname; const extension = hostName.split(siteName).pop() console.log(hostName) return extension; } $(".get").on('click', function(event) { var DomainEX = $('#url').val(); const extension = getDomainExtension(DomainEX, 'amazon') console.log(extension) });
Обычно для извлечения частей из URL может пригодиться URL API . В вашем случае url.hostname, но это возвращает все части домена (включая поддомен и расширение).
url.hostname
Для вашего конкретного c регистра вы можете использовать немного регулярных выражений:
const getAmazonExt = url => /amazon.([^/]+)/.exec(url)[1]; console.log(getAmazonExt('https://www.amazon.com/dp/067144901X')) console.log(getAmazonExt('https://www.amazon.co.uk/dp/067144901X')) console.log(getAmazonExt('https://www.amazon.it/dp/067144901X')) console.log(getAmazonExt('https://www.amazon.de/dp/067144901X'))