>  기사  >  웹 프론트엔드  >  재미있는 JavaScript 질문: URL에서 도메인 이름 추출

재미있는 JavaScript 질문: URL에서 도메인 이름 추출

黄舟
黄舟원래의
2017-01-22 14:48:151417검색

주어진 URL 문자열을 어떻게 구문 분석하고 여기에서 도메인 이름을 추출할 수 있나요?

아래와 같이:

domainName("http://github.com/carbonfive/raygun") == "github"   
domainName("http://www.zombie-bites.com") == "zombie-bites"  
domainName("https://www.cnet.com") == "cnet"

우리 모두 알고 있듯이 URL의 첫 번째 부분은 http, https 및 더 많은 프로토콜과 같은 다양한 유형일 수 있습니다. 향후 추가될 예정이므로 프로토콜 이름이 모두 일치하면 확장성이 너무 떨어집니다.

그러나 어떤 종류의 합의를 이루더라도 이 문단은 필수입니다 - "://".

그리고 종종 이 문자열 뒤에 도메인 이름이 오고, 우리는 이 문자열을 가로챌 수 있습니다.

다음 코드에서는 자세히 설명합니다.

function domainName(url){  
    var sign = "://";  
    var pos = url.indexOf(sign);  
    //如果以协议名开头  
    //如:http://github.com/  
    if(pos >= 0){  
        pos += sign.length;  
        //截取协议名以后的部分  
        //github.com/  
        url = url.slice(pos);  
    }  
    //以小数点作分割  
    var array = url.split(".");  
    //如果是以3W开头,返回第二部分  
    //如:www.github.com  
    if(array[0] === "www"){  
        return array[1];  
    }  
    //如果不是以3W开头,则返回第一部分  
    //如:github.com/  
    return array[0];  
}

이 방법은 몇 가지 일반적인 상황만 고려합니다. 하위 도메인 이름과 같은 일부 상황은 고려되지 않습니다.

위는 흥미로운 JavaScript 질문입니다. URL에서 도메인 이름의 내용을 추출하는 경우 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.