주어진 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)를 참고하세요!