분류 javascript

Javascript 30초 Snippet - String : URLJoin

컨텐츠 정보

  • 조회 294 (작성일 )

본문

지정된 모든 URL 세그먼트를 결합한 다음 결과 URL을 정규화합니다. 


https://github.com/30-seconds/30-seconds-of-code#bytesize 


String.prototype.join( '/')을 사용하여 URL 세그먼트를 결합 한 다음 다양한 정규 표현식으로 일련의 String.prototype.replace()를 호출하여 결과 URL을 정규화하십시오 (이중 슬래시 제거, 프로토콜에 적절한 슬래시 추가, 슬래시 제거) 매개 변수는 '&'와 매개 변수를 결합하고 첫 번째 매개 변수 분리 문자를 정규화 하십시오).


const URLJoin = (...args) =>
  args
    .join('/')
    .replace(/[\/]+/g, '/')
    .replace(/^(.+):\//, '$1://')
    .replace(/^file:/, 'file:/')
    .replace(/\/(\?|&|#[^!])/g, '$1')
    .replace(/\?/g, '&')
    .replace('&', '?');


ex)


URLJoin('http://www.google.com', 'a', '/b/cd', '?foo=123', '?bar=foo'); // 'http://www.google.com/a/b/cd?foo=123&bar=foo'