वर्तमान में मैं 'डोमेन' निम्नलिखित regex वाले किसी भी URL से निकाल सकते हैं:जावास्क्रिप्ट Regex यूआरएल निकालने डोमेन केवल
/^(?:https?:\/\/)?(?:[^@\n][email protected])?(?:www\.)?([^:\/\n\?\=]+)/im
हालांकि मैं भी हो रही है उप डोमेन के भी जो मैं बचना चाहते हैं।
- www.google.com
- yahoo.com/something
- freds.meatmarket.co.uk?someparameter
- josh.meatmarket.co.uk/asldf: उदाहरण के लिए अगर मैं साइटों/asdf
मैं वर्तमान में मिलती है:
- google.com
- yahoo.com
- freds.meatmarket.co.uk
- josh.meatmarket.co.uk
उन पिछले दो मैं freds
और josh
उप डोमेन भाग को बाहर निकालने और निकालने ही सच्चा चाहते हैं डोमेन जो meatmarket.co.uk
होगा।
मुझे एक और एसओएफ मिला जो PHP में हल करने का प्रयास करता है, दुर्भाग्य से मैं PHP नहीं जानता। क्या यह जेएस के लिए अनुवाद योग्य है (मैं वास्तव में Google स्क्रिप्ट FYI का उपयोग कर रहा हूं)?
function topDomainFromURL($url) {
$url_parts = parse_url($url);
$domain_parts = explode('.', $url_parts['host']);
if (strlen(end($domain_parts)) == 2) {
// ccTLD here, get last three parts
$top_domain_parts = array_slice($domain_parts, -3);
} else {
$top_domain_parts = array_slice($domain_parts, -2);
}
$top_domain = implode('.', $top_domain_parts);
return $top_domain;
}
निकालने में सक्षम था यह अब तक का सबसे अच्छा समाधान होने के लिए लग रहा है। मुझे लगता है कि मैं 'कुछ/कुछ/somthing' – MarkII
@MarkII के रूप में दिए गए खराब डोमेन को बाहर करने के लिए संशोधित कर सकता हूं, हाँ, आप उस शीर्ष पर किसी भी अन्य चेक को स्ट्रिंग कर सकते हैं। मैंने अपने regexp के सामने '^' एंकर भी भूल गया है। –
यह कुछ मान्य यूआरएल पैरामीटर के लिए काम नहीं करता है उदा। 'http: //freds.meatmarket.co.uk? someparameter? ordernumber = 1234 और ईमेल = break @ regex.com' मिलान किया गया उपसमूह 'regex.com' है क्योंकि यह @ – Davos