파일명 추출 함수

 

음~ 정확하게 파일명이라고 하기엔... 여하튼 마지막 /와 경로의 파라미터를 제외한 값 가져오기

 

 

function getFileName() {
  var sPathName = decodeURIComponent(window.location.pathname), 
        iStrLen = sPathName.length, 
        iLastShash = sPathName.lastIndexOf('/') + 1, 
        sFileName = sPathName.substring(iLastShash, iStrLen); 

  return sFileName;
}

 

 

 

See the Pen KappKN by Kiyeol Yoo (@spiegel) on CodePen.

 

 

 



일단 주소 체계부터 알아보자. 웹에서 주소는 프로토콜://도메인/폴더명/파일명 으로 되어 있다. 프로토콜이란 통신 규약이다. 사람끼리 대화하려면 언어가 필요한데 언어라는 것이 서로 간의 약속이며 우리가 한국어라는 약속을 사용하는 것처럼 컴퓨터끼리 자료를 주고 받으려면 언어 즉 컴퓨터끼리의 약속이 필요하다. 지금 보고 있는 브라우저의 주소표시줄에 있는 http나 https를 말하는데 이외에 여러 개의 프로토콜(http, https, ftp, sftp, telnet, pop3, smtp...)이 있으며 약간 다르지만 우리가 잘 알고 있는 프로토콜인 IP도 인터넷 프로토콜의 약자로 통신 규약의 한 종류이다.


일반적으로 잘 알려진 http나 ftp를 사용하고 프로토콜과 도메인의 사이에 구분자인 콜론과 슬래시 두 개가 놓인다. 이렇게 놓자고 국제기구에서 약속하고 받아드려 사용되어진다. 누군가 콜론만 쓰지 왜 슬래시를 붙이는지 그것도 두 개나 하면 콜론만 사용하면 하드 드라이브를 열 것이다. 아무 브라우저를 열고 C: 이렇게 써보라. 익스플로러는 탐색기를 열고 나머지는 하드 드라이브를 표시 할 것이다. 물론 C://해도 드라이브를 여는 브라우저도 있을 것이다. 


도메인은 컴퓨터 그룹의 이름이다. 네트워크에 접속되어 있는 컴퓨터에 IP가 있다는 것은 누구나 알 것이다. 그 컴퓨터에 서버 프로그램을 설치하고 실행시켰다고 했을 때 그 컴퓨터의 IP만 안다면 네트워크에 접속되어 있는 어떤 장비도 이 컴퓨터에 접근할 수 있다. 물론 권한 설정 이런 걸 다 제외하고 말이다. 그런데 IP라는 것이 숫자와 점으로 되어 있어 외우기가 어렵다. 그래서 생각한 것이 IP를 이름으로 치환시킨 것이 도메인이다. 도메인 자리에 해당 IP를 써도 같은 역할을 한다.


폴더 명은 탐색기의 폴더 명처럼 물리적 폴더 명일 수도 있고 가상 폴더 명일 수도 있다. 아마 컴퓨터의 자료는 분류학을 좋아하는 사람이 만들지 않았나 쉽다. 파일 명도 실제 파일 명일 수도 있고 가상의 파일 명일 수도 있다. 음 이걸 파일 명이라 해야하나., 별명이라고 해야하나...

 


decodeURIComponent


decode 접두사인 de-는 反, 반대라는 의미를 가지며 code는 암호, 부호를 나타내므로 decode는 암호의 반대이므로 암호를 풀다, 암호를 해제한다는 뜻을 가진다. 


URI은 Uniform Resource Identifier의 약자로 네트워크(인터넷)의 자원(파일이라 생각하면 됨)의 주소를 말하며 위에서 설명한 웹 주소를 나타낸다. 필자는 처음 이 함수를 봤을 때 URL이라 생각하고 입력해서 에러가 난 적이 있다. 그럼 무엇이 다른지 확인해 보자. 필자는 그냥 있으면 사용해서 에러가 없으면 아무 생각 없지만...


URI(Uniform Resource Identifier), URL(Uniform Resource Locator), URN(Uniform Resource Name)


A URI can be further classified as a locator, a name, or both.  
The term "Uniform Resource Locator" (URL) refers to the subset of URIs that, 
in addition to identifying a resource, provide a means of
locating the resource by describing its primary access mechanism
(e.g., its network "location").  The term "Uniform Resource Name"
(URN) has been used historically to refer to both URIs under the
"urn" scheme [RFC2141], which are required to remain globally unique
and persistent even when the resource ceases to exist or becomes
unavailable, and to any other URI with the properties of a name.


참조 : RFC 3986

 

반응형

'Javascript' 카테고리의 다른 글

문법과 타입  (0) 2020.01.04
처음 자바스크립트 시작하기  (0) 2020.01.04
아코디언  (0) 2017.07.10
Jquery 리스트 순서 랜덤 변경  (0) 2017.01.11
경로 파라미터 추출 함수  (0) 2017.01.06