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(/.*\//, ''));