çµã¿è¾¼ã¿ã® URL ã¯ã©ã¹ã¯ URL ã®ä½æãè§£æã«é¢ãã便å©ãªã¤ã³ã¿ãã§ã¼ã¹ãæä¾ãã¾ãã
ãªããå¿
ãããããã使ãå¿
è¦ã¯ããã¾ãããå³å¯ã« URL ãªãã¸ã§ã¯ããå¿
è¦ã¨ãããããã¯ã¼ã¯ã¡ã½ããã¯ãªããæååã§ãååã§ãããããé常ã«å½¹ç«ã¤ã¨ããããã¾ãã
URL ã使ãã
æ°ãã URL ãªãã¸ã§ã¯ãã使ããæ§æã§ã:
new URL(url, [base])
urlâ ããã¹ã url ã§ãbaseâurlã®ãªãã·ã§ã³ã®ãã¼ã¹ã§ã
URL ãªãã¸ã§ã¯ãã使ãã¨ãããã«ãã®æ§æè¦ç´ ã«ã¢ã¯ã»ã¹ã§ãã¾ãããã®ããããã㯠url ãè§£æããè¯ãæ¹æ³ã§ããe.g:
let url = new URL('https://javascript.info/url');
alert(url.protocol); // https:
alert(url.host); // javascript.info
alert(url.pathname); // /url
ãã¼ãã·ã¼ãã§ã:
hrefã¯å®å ¨ãª url,url.toString()ã¨åãã§ããprotocolã¯ã³ãã³:ã§çµããã¾ããsearchã¯ã¯ã¦ãª?ããå§ã¾ãã¾ããhashã¯ããã·ã¥#ããå§ã¾ãã¾ãã- HTTP èªè¨¼ãããå ´åã
userã¨passwordããããã£ãããã¾ãã
ã¾ããç¸å¯¾ url ã使ããã¨ãã«ãå©ç¨ã§ãã¾ãããã®å ´åã¯2ã¤ç®ã®å¼æ°ã使ãã¾ã:
let url = new URL('profile/admin', 'https://javascript.info');
alert(url); // https://javascript.info/profile/admin
url = new URL('tester', url); // ç¾å¨ã® url ãã¹ã«åºæºã«ã㦠`tester` ã«ç§»åãã¾ã
alert(url); // https://javascript.info/profile/tester
URL ã使ããã¨ãã§ãã¾ãURL ãªãã¸ã§ã¯ã 㯠fetch ã XMLHttpRequest, æååã® url ãæå¾
ããã¦ããã¨ãããªãã©ãã§ã使ããã¨ãã§ãã¾ãã
ã»ã¼å¤§å¤æ°ã®ã¡ã½ããã¯ãèªåçã«æååã«å¤æãã¾ãã
SearchParams
ä¸ããããæ¤ç´¢ãã©ã¡ã¼ã¿ã§ url ã使ãããã¨ãã¾ããããä¾ãã° https://google.com/search?query=value ã§ãã
ãããã¯æ£ããã¨ã³ã³ã¼ãããã¦ããå¿ è¦ãããã¾ãã
é常ã«å¤ããã©ã¦ã¶ã§ã¯ãURL ãç»å ´ãã以åãçµã¿è¾¼ã¿é¢æ° encodeURIComponent/decodeURIComponent ã使ã£ã¦ãã¾ããã
ãã¾ããããã¯å¿
è¦ããã¾ãã: url.searchParams ã¯URLSearchParamsåã®ãªãã¸ã§ã¯ãã§ãã
ããã¯æ¤ç´¢ãã©ã¡ã¼ã¿ã«å¯¾ãã¦ä¾¿å©ãªã¡ã½ãããæä¾ãã¦ãã¾ãã:
append(name, value)â ãã©ã¡ã¼ã¿ã追å ãã¾ã,delete(name)â ãã©ã¡ã¼ã¿ãåé¤ãã¾ã,get(name)â ãã©ã¡ã¼ã¿ãåå¾ãã¾ã,getAll(name)â æå®ãã name ã®ãã¹ã¦ã®ãã©ã¡ã¼ã¿ãåå¾ãã¾ã(e.g.?user=John&user=Peteãªã©è¤æ°ããå ´å),has(name)â ãã©ã¡ã¼ã¿ãåå¨ãããããã§ãã¯ãã¾ã,set(name, value)â ãã©ã¡ã¼ã¿ãè¨å®/ç½®ãæãã¾ã,sort()â name ã§ãã©ã¡ã¼ã¿ãã½ã¼ããã¾ãããã£ãã«å¿ è¦ã¨ããã¾ãã,- â¦ã¾ãã
Mapã®ããã«å復å¯è½ã§ã.
ãã®ãããURL ãªãã¸ã§ã¯ã㯠url ãã©ã¡ã¼ã¿ãæä½ããããã®ç°¡åãªæ¹æ³ãæä¾ãã¾ãã
ä¾:
let url = new URL('https://google.com/search');
url.searchParams.set('query', 'test me!');
alert(url); // https://google.com/search?query=test+me%21
url.searchParams.set('tbs', 'qdr:y'); // add param for date range: past year
alert(url); // https://google.com/search?query=test+me%21&tbs=qdr%3Ay
// iterate over search parameters (decoded)
for(let [name, value] of url.searchParams) {
alert(`${name}=${value}`); // query=test me!, then tbs=qdr:y
}
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã