자바스크립트를 사용하여 URL을 구분하는 함수 입니다.
HTML의 `<a>`를 활용하는 방법으로 `<a>`에 URL을 적용한 후, 필요한 값만 뽑아서 객체로 반환 합니다.
간단하게 사용하기 좋습니다.
`http://url.com/index.html?a=1&b=2` 형태에 사용이 가능합니다.
URL텍스트 값만 가지고 값을 구분하기 때문에 텍스트의 형태에 따라서 못 가지고 오는 값도 있습니다.
브라우저 마다 값의 형태가 다를 수 있습니다. 사용 전에 `console.log()`를 사용하여 값의 형태를 확인하고 추가적인 기능을 더 넣어야 할 수 있습니다.
GET 방식으로 넘어오는 파라미터는 `querys`에 `key:value`형태로 들어갑니다.
pathname은 host뒤의 경로값 입니다. 브라우저에 따라서 맨 앞에 `/`가 없는 경우도 있기 때문에 `/`가 항상 있도록 했습니다.
port의 경우 `http://url.com:8080`처럼 URL에 명시되어 있어야 값이 나오는 브라우저도 있고, 브라우저가 알아서 붙여주는 경우도 있습니다.
hash는 'http://url.com/index.html#id` 처럼 `#`뒤에 명시되어 있는 ID값을 말합니다. #뒤에 있는 모든 문자를 ID로 인식합니다.
참고 : https://www.abeautifulsite.net/parsing-urls-in-javascript
function parseUrl(url) {
const aEl = document.createElement('A');
aEl.href = url;
const arr = aEl.search.replace(/^\?/, '').split('&');
const searchObj={};
let queries;
for (let i in arr) {
queries = arr[i].split('=');
searchObj[queries[0]] = queries[1];
}
return {
protocol: aEl.protocol,
host: aEl.host,
hostname: aEl.hostname,
port: aEl.port,
pathname: ('/' + aEl.pathname).replace(/^\/\//, '\/'),
search: aEl.search,
searchObj: searchObj,
hash: aEl.hash
};
}
HTML의 `<a>`를 활용하는 방법으로 `<a>`에 URL을 적용한 후, 필요한 값만 뽑아서 객체로 반환 합니다.
간단하게 사용하기 좋습니다.
`http://url.com/index.html?a=1&b=2` 형태에 사용이 가능합니다.
URL텍스트 값만 가지고 값을 구분하기 때문에 텍스트의 형태에 따라서 못 가지고 오는 값도 있습니다.
브라우저 마다 값의 형태가 다를 수 있습니다. 사용 전에 `console.log()`를 사용하여 값의 형태를 확인하고 추가적인 기능을 더 넣어야 할 수 있습니다.
GET 방식으로 넘어오는 파라미터는 `querys`에 `key:value`형태로 들어갑니다.
pathname은 host뒤의 경로값 입니다. 브라우저에 따라서 맨 앞에 `/`가 없는 경우도 있기 때문에 `/`가 항상 있도록 했습니다.
port의 경우 `http://url.com:8080`처럼 URL에 명시되어 있어야 값이 나오는 브라우저도 있고, 브라우저가 알아서 붙여주는 경우도 있습니다.
hash는 'http://url.com/index.html#id` 처럼 `#`뒤에 명시되어 있는 ID값을 말합니다. #뒤에 있는 모든 문자를 ID로 인식합니다.
참고 : https://www.abeautifulsite.net/parsing-urls-in-javascript