2013-04-26 11 views
6

के अंतिम भाग जाओ मैं, जावास्क्रिप्ट के साथ वर्तमान यूआरआई के अंतिम भाग प्राप्त करने की आवश्यकता की तरहयूआरआई

www.example.com/apple/beer/cucumber

के लिए इसे वापस चाहिए

ककड़ी

या

www.example.com/apple/beer/

इसे वापस चाहिए

बियर

मैं निम्नलिखित कोड के साथ आया था:

var url = window.location.pathname; 
var urlsplit = url.split("/"); 
var action = urlsplit[urlsplit.length-1]; 

क्या यह फट सकता है उसे सुधार हुआ? यदि नहीं, तो शायद यह पोस्ट अन्य समस्याओं को एक ही समस्या के समाधान खोजने में मदद करेगा।

समाधान

सभी को धन्यवाद, यह लगता है कम से कम (उम्मीद सबसे अच्छा) समाधान:

var action = window.location.pathname.split("/").slice(-1)[0]; 
+0

यह सवाल इसके बारे में डुप्लीकेट के रूप में चिह्नित किया गया था का डुप्लिकेट नहीं है
यहाँ एक समाधान जो भी उस स्थिति में काम करता है। यह एक और अधिक विशिष्ट अनुरोध है, और एक वैध व्यक्ति (मुझे खुद ही इसकी आवश्यकता है - पथ प्राप्त करना एक बात है, इसका अंतिम भाग प्राप्त करना एक और है)। – acdcjunior

उत्तर

7

इसमें कुछ समय कम है, लेकिन अपने समाधान निश्चित रूप से एक सही है।

var url = window.location.pathname; 
var urlsplit = url.split("/").slice(-1)[0]; 

या, जैसा कि PSR कहते हैं, आप substr इस्तेमाल कर सकते हैं:

var url = window.location.pathname; 
url.substr(url.lastIndexOf('/') + 1); 
+0

देखें कि मैंने अपना उत्तर – PSR

+1

अपडेट किया है, आपने मेरा अपडेट किया है :) –

+1

क्षमा करें गलती से मैंने आपका कोड अपडेट किया।कृपया अपना कोड – PSR

1

आप उपयोग कर सकते हैं

url.substr(url.lastIndexOf('/') + 1) 
+0

सही करें, क्या वह अंतिम अक्षर वापस नहीं करेगा? – Gareth

+0

@ गैरेथ नोप, 'सबस्ट्र' चरित्रों की एक श्रृंखला देता है। इस मामले में, केवल शुरुआती बिंदु प्रदान किया गया था, इसलिए यह वहां से सबस्ट्रिंग को – Ian

+1

@ इयान राइट पर लौटाता है, लेकिन जब मैंने यह टिप्पणी छोड़ी तो जवाब 'url.slice (-1)' था - तब यह निंजा- 5 मिनट की ग्रेस पीरियड में संपादित एसओ आपको संपादित किए गए सभी को बताने से पहले देता है;) – Gareth

-1

location.pathname.match(/([^\/]+)$/)[1]

यह अनिवार्य रूप से कह रहा है सभी पात्रों कि नहीं कर रहे लेना पथ के अंत से एक स्लैश नहीं है, और उस अनुक्रम को वापस करें।

9

दुर्भाग्य से अब तक कोई जवाब / के साथ यूआरएल पर काम नहीं करता है जैसे www.example.com/apple/beer/ का उदाहरण।

window.location.pathname.split('/').filter(function(el){ return !!el; }).pop(); 

jsFiddle testcase: http://jsfiddle.net/EMK6t/

+0

हाँ आप सही हैं। मैं करूँगा 'अगर अंतिम चरित्र एक स्लैश है, इसे हटा दें', लेकिन वह स्निपेट निश्चित रूप से बेहतर है। – keeri

+0

बिल्कुल सही। ऐसा लगता है कि कोई भी उन URL के लिए लेखांकन कर रहा है जो स्लैश में समाप्त होते हैं। अच्छा स्निपेट! –

+0

बहुत बढ़िया ....... :) –

संबंधित मुद्दे