[javascript] JavaScript에서 URL의 호스트 이름 부분을 추출하는 방법

전체 URL에서 시작하는 정말 쉬운 방법이 있습니까?

document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"

그리고 호스트 부분 만 추출하십시오.

aaa.bbb.ccc.com

이것을 안정적으로 수행하는 JavaScript 함수가 있어야하지만 찾을 수는 없습니다.



답변

이 주소를 가진 페이지가 있다고 가정하십시오 http://sub.domain.com/virtualPath/page.htm. 이러한 결과를 얻으려면 페이지 코드에서 다음을 사용하십시오.

  • window.location.host: 당신은 얻을 것이다 sub.domain.com:8080또는sub.domain.com:80
  • window.location.hostname : 당신은 얻을 것이다 sub.domain.com
  • window.location.protocol : 당신은 얻을 것이다 http:
  • window.location.port: 당신은 얻을 것이다 8080또는80
  • window.location.pathname : 당신은 얻을 것이다 /virtualPath
  • window.location.origin: 당신은 얻을 것이다 http://sub.domain.com*****

업데이트 : .origin 정보

***** 심판이 말했듯이 브라우저 호환성 window.location.origin은 명확하지 않습니다. 크롬으로 http://sub.domain.com:port확인했으며 포트가 80 이외 http://sub.domain.com의 포트이고 포트가 80이면 반환되었습니다.

저에게 언급 해 주신 @torazaburo에게 감사드립니다.


답변

위치 프로토콜과 호스트를 연결할 수 있습니다.

var root = location.protocol + '//' + location.host;

URL의 경우을 'http://stackoverflow.com/questions'반환합니다.'http://stackoverflow.com'


답변

사용 document.location목적과 그 host또는 hostname속성.

alert(document.location.hostname); // alerts "stackoverflow.com"


답변

현재 페이지 URL뿐만 아니라 임의의 URL로 작업 할 수 있기를 원했기 때문에 수락 된 답변이 효과가 없었습니다.

URL객체를 살펴보십시오 .

var url = new URL("http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah");
url.protocol;  // "http:"
url.hostname;  // "aaa.bbb.ccc.com"
url.pathname;  // "/asdf/asdf/sadf.aspx"
url.search;    // "?blah"


답변

두 가지 방법이 있습니다. 첫 번째는 다른 답변의 변형이지만 기본 포트가 아닌 포트를 설명합니다.

function getRootUrl() {
  var defaultPorts = {"http:":80,"https:":443};

  return window.location.protocol + "//" + window.location.hostname
   + (((window.location.port)
    && (window.location.port != defaultPorts[window.location.protocol]))
    ? (":"+window.location.port) : "");
}

그러나이 간단한 방법을 선호합니다 (URI 문자열과 함께 작동).

function getRootUrl(url) {
  return url.toString().replace(/^(.*\/\/[^\/?#]*).*$/,"$1");
}


답변

사용하다

window.location.origin

http://aaa.bbb.ccc.ddd.com/sadf.aspx?blah

당신은 얻을 것이다 : http://aaa.bbb.ccc.ddd.com/


답변

시험

document.location.host

또는

document.location.hostname