Làm thế nào để tôi có được phân đoạn cuối cùng của một URL? Tôi có tập lệnh sau hiển thị URL đầy đủ của thẻ neo được nhấp:
$[".tag_name_goes_here"].live['click', function[event]
{
event.preventDefault[];
alert[$[this].attr["href"]];
}];
Nếu URL là
//mywebsite/folder/file
Làm cách nào để tôi chỉ hiển thị phần "tệp" của URL trong hộp cảnh báo?
Isherwood
55K16 Huy hiệu vàng108 Huy hiệu bạc150 Huy hiệu Đồng16 gold badges108 silver badges150 bronze badges
hỏi ngày 21 tháng 1 năm 2011 lúc 11:11Jan 21, 2011 at 11:11
Oshirowanenenoshirowanenoshirowanen
15.1K80 Huy hiệu vàng192 Huy hiệu bạc345 Huy hiệu đồng80 gold badges192 silver badges345 bronze badges
1
Bạn cũng có thể sử dụng hàm LastIndexof [] để xác định vị trí cuối cùng của ký tự
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
6 trong URL của bạn, sau đó là hàm Subring [] để trả về phần phụ Bắt đầu từ vị trí đó:console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
Bằng cách đó, bạn sẽ tránh tạo một mảng chứa tất cả các phân đoạn URL của bạn, như
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
7.
Tháng một
554 Huy hiệu bạc10 Huy hiệu đồng4 silver badges10 bronze badges
Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:18Jan 21, 2011 at 11:18
Frédéric Hamidifrédéric HamidiFrédéric Hamidi
253K41 Huy hiệu vàng477 Huy hiệu bạc472 Huy hiệu Đồng41 gold badges477 silver badges472 bronze badges
18
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
Chris hạnh phúc
6,8971 Huy hiệu vàng22 Huy hiệu bạc47 Huy hiệu đồng1 gold badge22 silver badges47 bronze badges
Đã trả lời ngày 28 tháng 10 năm 2012 lúc 11:35Oct 28, 2012 at 11:35
Tim van Oostromtim Van OostromTim van Oostrom
1.9011 Huy hiệu vàng12 Huy hiệu bạc7 Huy hiệu đồng1 gold badge12 silver badges7 bronze badges
3
window.location.pathname.split["/"].pop[]
Đã trả lời ngày 21 tháng 11 năm 2016 lúc 16:56Nov 21, 2016 at 16:56
1
Các câu trả lời khác có thể hoạt động nếu đường dẫn đơn giản, chỉ bao gồm các yếu tố đường dẫn đơn giản. Nhưng khi nó chứa các thông số truy vấn là tốt, chúng phá vỡ.query params as well, they break.
Thay vào đó, sử dụng tốt hơn đối tượng URL cho việc này để có được một giải pháp mạnh mẽ hơn. Đó là một cách giải thích phân tích cú pháp của URL hiện tại:
Đầu vào:
8 var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
8const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
Đầu ra:
9 var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
9Điều này hoạt động cho tất cả các trình duyệt phổ biến. Chỉ có sự sắp chết của chúng tôi IE không hỗ trợ điều đó [và sẽ không]. Đối với IE có sẵn một polyfills [nếu bạn quan tâm đến].
Đã trả lời ngày 10 tháng 8 năm 2018 lúc 23:27Aug 10, 2018 at 23:27
Sebastian Barthsebastian BarthSebastian Barth
3.7956 Huy hiệu vàng37 Huy hiệu bạc56 Huy hiệu Đồng6 gold badges37 silver badges56 bronze badges
3
Chỉ là một giải pháp khác với Regex.
var href = location.href;
console.log[href.match[/[[^\/]*]\/*$/][1]];
Đã trả lời ngày 20 tháng 4 năm 2016 lúc 10:56Apr 20, 2016 at 10:56
AvirtumavirtumAvirtum
4286 Huy hiệu bạc14 Huy hiệu Đồng6 silver badges14 bronze badges
0
JavaScript có chức năng phân chia được liên kết với đối tượng chuỗi có thể giúp bạn:
var url = "//mywebsite/folder/file";
var array = url.split['/'];
var lastsegment = array[array.length-1];
Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:14Jan 21, 2011 at 11:14
Fran Veronafran VeronaFran Verona
5.3905 Huy hiệu vàng45 Huy hiệu bạc84 Huy hiệu đồng5 gold badges45 silver badges84 bronze badges
0
Hoặc bạn có thể sử dụng một biểu thức thông thường:
alert[href.replace[/.*\//, '']];
Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:21Jan 21, 2011 at 11:21
Jasssonpetjasssonpetjasssonpet
2.06916 Huy hiệu bạc18 Huy hiệu đồng16 silver badges18 bronze badges
1
var urlChunks = 'mywebsite/folder/file'.split['/'];
alert[urlChunks[urlChunks.length - 1]];
Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:14Jan 21, 2011 at 11:14
Fran Veronafran Veronaacme
5.3905 Huy hiệu vàng45 Huy hiệu bạc84 Huy hiệu đồng7 gold badges74 silver badges106 bronze badges
Hoặc bạn có thể sử dụng một biểu thức thông thường:
//mywebsite/folder/file
0Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:21
Jasssonpetjasssonpet
2.06916 Huy hiệu bạc18 Huy hiệu đồng2 gold badges47 silver badges32 bronze badges
AcmeacmeApr 30, 2019 at 19:26
1
14.3k7 Huy hiệu vàng74 Huy hiệu bạc106 Huy hiệu đồng
//mywebsite/folder/file
1Cách ngắn nhất làm thế nào để có được URL phân đoạn cuối cùng với
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
7, window.location.pathname.split["/"].pop[]
1 và window.location.pathname.split["/"].pop[]
2Aug 21, 2018 at 12:46
Làm việc cho tôi.John Doherty
Ozzyczech34 silver badges37 bronze badges
3
9.0972 Huy hiệu vàng47 Huy hiệu bạc32 Huy hiệu Đồnghighly recommended use PURL jquery plugin. Motivation for PURL is that url can be segmented by '#' too [example: angular.js links], i.e. url could looks like
//mywebsite/folder/file
2Đã trả lời ngày 30 tháng 4 năm 2019 lúc 19:26
//mywebsite/folder/file
3Trả về phân đoạn cuối cùng, bất kể dấu gạch chéo:
Đã trả lời ngày 21 tháng 8 năm 2018 lúc 12:46
//mywebsite/folder/file
4John Dohertyjohn DohertyJun 20, 2013 at 13:10
IL55IL55IL55
3.31934 Huy hiệu bạc37 Huy hiệu đồng1 gold badge8 silver badges15 bronze badges
Tôi biết, đã quá muộn, nhưng đối với những người khác: Tôi rất khuyến khích sử dụng plugin purl jQuery. Động lực cho PURL là URL có thể được phân đoạn bằng '#' [ví dụ: liên kết Angular.js], tức là URL có thể trông giống nhưRegEx
//mywebsite/folder/file
5hoặc
//mywebsite/folder/file
6Và với PURL, bạn có thể dễ dàng quyết định [phân khúc/FSEGNED] phân khúc bạn muốn có được.Dec 9, 2020 at 5:40
Also,
//mywebsite/folder/file
7Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:18Jan 21, 2011 at 11:18
Frédéric Hamidifrédéric Hamidinaveen
253K41 Huy hiệu vàng477 Huy hiệu bạc472 Huy hiệu Đồng46 gold badges159 silver badges245 bronze badges
Chris hạnh phúc
//mywebsite/folder/file
86,8971 Huy hiệu vàng22 Huy hiệu bạc47 Huy hiệu đồngJan 13, 2015 at 18:02
Đã trả lời ngày 28 tháng 10 năm 2012 lúc 11:35Pinch
Tim van Oostromtim Van Oostrom8 gold badges38 silver badges59 bronze badges
1
1.9011 Huy hiệu vàng12 Huy hiệu bạc7 Huy hiệu đồng
//mywebsite/folder/file
9Đã trả lời ngày 21 tháng 11 năm 2016 lúc 16:56May 11, 2015 at 16:24
Jaboc83Jaboc83Jaboc83
Các câu trả lời khác có thể hoạt động nếu đường dẫn đơn giản, chỉ bao gồm các yếu tố đường dẫn đơn giản. Nhưng khi nó chứa các thông số truy vấn là tốt, chúng phá vỡ.1 gold badge2 silver badges8 bronze badges
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
0Thay vào đó, sử dụng tốt hơn đối tượng URL cho việc này để có được một giải pháp mạnh mẽ hơn. Đó là một cách giải thích phân tích cú pháp của URL hiện tại:
Đầu vào:
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
8console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
1Đầu ra:
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
9Jan 21, 2011 at
11:43
Điều này hoạt động cho tất cả các trình duyệt phổ biến. Chỉ có sự sắp chết của chúng tôi IE không hỗ trợ điều đó [và sẽ không]. Đối với IE có sẵn một polyfills [nếu bạn quan tâm đến].Walf
Đã trả lời ngày 10 tháng 8 năm 2018 lúc 23:272 gold badges41 silver badges58 bronze badges
0
Sebastian Barthsebastian Barth
const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
03.7956 Huy hiệu vàng37 Huy hiệu bạc56 Huy hiệu ĐồngMay 23, 2017 at 10:31
Chỉ là một giải pháp khác với Regex.RegarBoy
Đã trả lời ngày 20 tháng 4 năm 2016 lúc 10:561 gold badge19 silver badges44 bronze badges
1
Avirtumavirtum
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
24286 Huy hiệu bạc14 Huy hiệu ĐồngAug 1, 2018 at 14:49
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
3JavaScript có chức năng phân chia được liên kết với đối tượng chuỗi có thể giúp bạn:
Đã trả lời ngày 21 tháng 1 năm 2011 lúc 11:14Jan 14, 2016 at 16:02
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
4TargetValue = một
Nếu url của bạn trông giống như:
//test.com/one/
hoặc
//test.com/one
hoặc
//test.com/one/index.htm
Sau đó, LoC kết thúc trông giống như: //test.com/one
Bây giờ, vì bạn muốn mục cuối cùng, hãy chạy bước tiếp theo để tải giá trị [TargetValue] ban đầu bạn muốn.
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
5console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
6Đã trả lời ngày 17 tháng 6 năm 2015 lúc 19:19Jun 17, 2015 at 19:19
Raddevusraddevusraddevus
7.5405 Huy hiệu vàng61 Huy hiệu bạc76 Huy hiệu đồng5 gold badges61 silver badges76 bronze badges
4
Đã cập nhật câu trả lời Raddevus:
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
7In đường dẫn cuối cùng của URL dưới dạng chuỗi:
console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
8
F0XS
1.2733 huy hiệu vàng15 Huy hiệu bạc19 Huy hiệu đồng3 gold badges15 silver badges19 bronze badges
Đã trả lời ngày 21 tháng 2 năm 2018 lúc 13:01Feb 21, 2018 at 13:01
Tôi thực sự không biết liệu Regex có phải là cách đúng đắn để giải quyết vấn đề này không vì nó thực sự có thể ảnh hưởng đến hiệu quả của mã của bạn, nhưng Regex dưới đây sẽ giúp bạn lấy phân đoạn cuối cùng và nó vẫn sẽ cung cấp cho bạn phân đoạn cuối cùng ngay cả khi URL được theo sau bởi một
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
6 trống rỗng. Regex mà tôi nghĩ ra là:console.log[this.href.substring[this.href.lastIndexOf['/'] + 1]];
9Đã trả lời ngày 27 tháng 8 năm 2018 lúc 12:40Aug 27, 2018 at 12:40
Tôi biết nó đã cũ nhưng nếu bạn muốn lấy cái này từ một URL, bạn có thể chỉ sử dụng:
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
0const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
2 Nhận tên đường dẫn từ URL hiện tại. const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
3 Nhận chỉ số về sự xuất hiện cuối cùng của Regex sau, trong trường hợp của chúng tôi là const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
4. Dấu chấm có nghĩa là bất kỳ ký tự nào, do đó, nó sẽ không được tính nếu var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
6 là ký tự cuối cùng trên URL. const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
6 sẽ cắt chuỗi giữa hai chỉ mục.Đã trả lời ngày 8 tháng 7 năm 2019 lúc 3:47Jul 8, 2019 at 3:47
Ruan Carlosruan CarlosRuan Carlos
4755 Huy hiệu bạc9 Huy hiệu Đồng5 silver badges9 bronze badges
Nếu URL là
const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
7const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
8 sẽ mang lại const segments = new URL[href].pathname.split['/'];
const last = segments.pop[] || segments.pop[]; // Handle potential trailing slash
console.log[last];
9Vì vậy, cách đơn giản nhất là sử dụng vị trí.Searchlocation.search
Bạn có thể tìm kiếm thêm thông tin ở đây và tại đây
Đã trả lời ngày 30 tháng 12 năm 2019 lúc 22:06Dec 30, 2019 at 22:06
DijiflexdijiflexDijiflex
4236 Huy hiệu bạc19 Huy hiệu Đồng6 silver badges19 bronze badges
Bạn có thể làm điều này với các đường dẫn đơn giản [w/0], v.v.
Được cấp có lẽ quá phức tạp và có lẽ không phải là người thực hiện, nhưng tôi muốn sử dụng
var href = location.href;
console.log[href.match[/[[^\/]*]\/*$/][1]];
0 cho niềm vui của nó.var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
1- Chia chuỗi trên các dấu phân cách đường dẫn.
- Lọc ra các bộ phận đường dẫn chuỗi trống [điều này có thể xảy ra với dấu gạch chéo trên đường dẫn].
- Giảm mảng các phần đường dẫn đến phần cuối cùng.
Đã trả lời ngày 17 tháng 6 năm 2020 lúc 17:36Jun 17, 2020 at 17:36
AaronaaronAaron
3.1543 Huy hiệu vàng33 Huy hiệu bạc49 Huy hiệu đồng3 gold badges33 silver badges49 bronze badges
Thêm vào câu trả lời tuyệt vời của Sebastian Barth.
Nếu
var href = location.href;
console.log[href.match[/[[^\/]*]\/*$/][1]];
1 là một biến mà bạn đang phân tích cú pháp, var href = location.href;
console.log[href.match[/[[^\/]*]\/*$/][1]];
2 sẽ ném var href = location.href;
console.log[href.match[/[[^\/]*]\/*$/][1]];
3 để ở phía an toàn, bạn nên var href = location.href;
console.log[href.match[/[[^\/]*]\/*$/][1]];
4var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
2Đã trả lời ngày 1 tháng 8 lúc 0:11Aug 1 at 0:11
Mrbarlettamrbarlettamrbarletta
86211 Huy hiệu bạc16 Huy hiệu đồng11 silver badges16 bronze badges
Tôi tin rằng sẽ an toàn hơn khi loại bỏ vết chém đuôi ['/'] trước khi thực hiện chuỗi con. Bởi vì tôi có một chuỗi trống trong kịch bản của tôi.
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
3Đã trả lời ngày 22 tháng 5 năm 2018 lúc 12:34May 22, 2018 at 12:34
Jaison Jamesjaison JamesJaison James
4.1984 Huy hiệu vàng36 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges36 silver badges51 bronze badges
1
Tốt nhất để có được URL phân đoạn cuối cùng [-] và [/] cũng
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
4Đã trả lời ngày 26 tháng 8 năm 2021 lúc 9:43Aug 26, 2021 at 9:43
Ashar Zafarashar ZafarAshar Zafar
3782 Huy hiệu bạc11 Huy hiệu đồng2 silver badges11 bronze badges
Một cách để tránh các thông số truy vấn
var parts = '//mywebsite/folder/file'.split['/'];
var lastSegment = parts.pop[] || parts.pop[]; // handle potential trailing slash
console.log[lastSegment];
5Đã trả lời ngày 9 tháng 6 lúc 15:33Jun 9 at 15:33
TakyotakyoTakyo
Huy hiệu Bạc 1111 Huy hiệu Đồng1 silver badge3 bronze badges