[javascript] URL의 마지막 세그먼트

URL의 마지막 세그먼트는 어떻게 얻습니까? 클릭 한 앵커 태그의 전체 URL을 표시하는 다음 스크립트가 있습니다.

$(".tag_name_goes_here").live('click', function(event)
{
    event.preventDefault();
    alert($(this).attr("href"));
});

URL이

http://mywebsite/folder/file

경고 상자에 URL의 “파일”부분 만 표시하려면 어떻게합니까?



답변

lastIndexOf () 함수를 사용 /하여 URL 에서 문자 의 마지막 항목을 찾은 다음 substring () 함수를 사용하여 해당 위치에서 시작하는 하위 문자열을 반환 할 수도 있습니다.

console.log(this.href.substring(this.href.lastIndexOf('/') + 1));

그렇게하면 모든 URL 세그먼트가 포함 된 배열을 만들지 않아도됩니다 split().


답변

var parts = 'http://mywebsite/folder/file'.split('/');
var lastSegment = parts.pop() || parts.pop();  // handle potential trailing slash

console.log(lastSegment);


답변

window.location.pathname.split("/").pop()


답변

정규식을 사용하는 또 다른 솔루션입니다.

var href = location.href;
console.log(href.match(/([^\/]*)\/*$/)[1]);


답변

Javascript에는 문자열 객체와 관련된 함수 분할 기능이 있으므로 다음을 수행 할 수 있습니다.

var url = "http://mywebsite/folder/file";
var array = url.split('/');

var lastsegment = array[array.length-1];


답변

경로가 단순하고 간단한 경로 요소로만 구성된 경우 다른 답변이 효과가있을 수 있습니다. 그러나 쿼리 매개 변수도 포함하면 중단됩니다.

보다 강력한 솔루션을 얻으려면 대신 URL 객체를 사용 하는 것이 좋습니다. 현재 URL을 해석 한 것입니다.

입력:
const href = 'https://stackoverflow.com/boo?q=foo&s=bar'

const segments = new URL(href).pathname.split('/');
const last = segments.pop() || segments.pop(); // Handle potential trailing slash
console.log(last);

산출: 'boo'

이것은 모든 일반적인 브라우저에서 작동합니다. 죽어가는 IE만이 지원하지 않으며 지원하지 않습니다. IE의 경우 폴리 필이 가능합니다 (만약 관심이 있다면 ).


답변

또는 정규식을 사용할 수 있습니다.

alert(href.replace(/.*\//, ''));