Я пытаюсь сформировать регулярное выражение (javascript/ node.js), которое будет извлекать часть поддомена и домена из любого заданного URL-адреса. Это то, с чем я столкнулся:
[^(?:http:\/\/|www\.|https:\/\/)]([^\/]+)
Прямо сейчас, я просто рассматриваю http, https для протокола и исключаю "www". часть из участка субдомена + домена URL. Я проверил выражение, и оно почти работает. Но вот проблема:
Успех
'http://mplay.google.co.in/sadfask/asdkfals?dk=10'.match(/[^(?:http:\/\/|www\.|https:\/\/)]([^\/]+)/i)
'http://lplay.google.co.in/sadfask/asdkfals?dk=10'.match(/[^(?:http:\/\/|www\.|https:\/\/)]([^\/]+)/i)
Отказ
'http://play.google.co.in/sadfask/asdkfals?dk=10'.match(/[^(?:http:\/\/|www\.|https:\/\/)]([^\/]+)/i)
'http://tplay.google.co.in/sadfask/asdkfals?dk=10'.match(/[^(?:http:\/\/|www\.|https:\/\/)]([^\/]+)/i)
Я просто использую первый элемент из массива результатов. Я не могу понять, почему "играть". и "tplay". не работает. Может ли кто-нибудь помочь мне в этом отношении?
Имеет ли значение "/p" и "/t" значение для оценщика регулярных выражений?
Есть ли другой способ извлечения поддомена и домена из любого заданного URL с использованием регулярного выражения?
Изменить -
Пример:
https://play.google.com/store/apps/details?id=com.skgames.trafficracer = > play.google.com
https://mail.google.com/mail/u/0/#inbox = > mail.google.com