2010-07-09 10 views
7

मैं कैसे ट्रिमिंग/पृष्ठ नाम करने के लिए नीचे यूआरएल अलग करना के बारे में जाना होगा ...मैं यूआरएल को पेज नाम पर कैसे ट्रिम/स्ट्रिप कर सकता हूं?

तो: http://www.BurtReynoldsMustache.com/whatever/whoever/apage.html

बन गयी: apage.html

कोई भी विचार?

+2

यह है कि इस का हल jQuery की जरूरत नहीं है, यह देखकर के रूप में यह एक ज्ञात तथ्य यह है कि jQuery [बर्ट रेनोल्ड्स के साथ संगत नहीं] है अच्छा है (http://stackoverflow.com/questions/3193211/help- मुझे कदम-बर्ट-रेनॉल्ड्स-सामना jQuery)। –

+1

मेमे निरंतरता के लिए +1: डी –

+0

हाँ, चीयर्स मार्करोबिन्सन –

उत्तर

11

आप jQuery की जरूरत नहीं है:

var url = window.location.href; 
var page = url.substring(url.lastIndexOf('/') + 1); 

संपादित करें: संभव क्वेरी स्ट्रिंग का एक अच्छा बिंदु:

// it might be from browser &/anywhere else 
var url = window.location.href; 
url = url.split('#').pop().split('?').pop(); 
var page = url.substring(url.lastIndexOf('/') + 1); 

ठीक है, यदि स्थान वस्तु उपलब्ध है, उपयोग पथ बेहतर परिणाम दिखाने के नीचे के रूप में, हालांकि, एक यूआरएल एक स्ट्रिंग या पाठ क्षेत्र या काल/लेबल से सीधे कुछ हो सकता है देता है। तो समाधान के ऊपर इसकी जगह होनी चाहिए।

document.location.href.split('/').pop(); 

संपादित करें::

+1

हैश और क्वेरीस्ट्रिंग्स – epascarello

+0

के साथ विफल रहता है यह ठीक है, इस उदाहरण में इसकी आवश्यकता नहीं है - उसे वापस वोट दें :( –

+3

उत्तर ठीक नहीं है जब अन्य साइट को खोजते समय लोगों को यह समाधान मिल जाएगा। यह अन्य लोगों के लिए असफल हो जाएगा। – epascarello

-1

तो परीक्षण किया है नहीं compeltely अनुमान लगाया है, लेकिन मैं इस तरह यकीन है कि कुछ :-)

var url = 'http://www.BurtReynoldsMustache.com/whatever/whoever/apage.html'; 
var page = url.split('/'); 
alert(page[page.length-1]);​ 

संपादितjsfiddle के तहत परीक्षण करना होगा हूँ और यह गलत था, इसके बाद के संस्करण कोड अब काम करना चाहिए: -)

+0

यह भी एक अच्छा है, लेकिन ... सरणी अनुक्रमणिका शून्य आधारित है। – BalusC

+0

मैंने संपादित किया है और अब यह काम करता है :-) –

+0

हैश और क्वेरी स्ट्रिंग्स के साथ विफल – epascarello

1

आप कुछ इस तरह कर सकता है तो आप शायद क्वेरी स्ट्रिंग से छुटकारा पाने के लिए करना चाहते हैं वहाँ भी एक है:

document.location.href.split('/').pop().split('?').shift(); 

संपादित करें 2: यह भी ध्यान नहीं देगा यूआरएल में एक एंकर अगर

document.location.href.split('/').pop().split(/\?|#/).shift(); 
0

यह क्वेरी और हैश मानों को भी बहिष्कृत करना चाहिए। , host, port, pathname, search और hash:

var path = location.href; 
path = path.substring(path.lastIndexOf("/") + 1); 
path = path.split("?")[0].split("#")[0]; 
console.debug(path); 
9

location और किसी भी लिंक (<a>) पृष्ठ पर तत्वों के साथ, आप गुण है कि आप यूआरएल के विशिष्ट भागों देने का भार मिलता है।

आपको href के साथ हैकिंग के लिए यूआरएल के कुछ हिस्सों को निकालने के लिए हमेशा इन गुणों का उपयोग करना चाहिए और शायद इसे कोने के मामलों के लिए गलत हो रहा है। उदाहरण के लिए, यहां पोस्ट किए गए हर समाधान में असफल हो जाएगा यदि ?query या #fragment मौजूद है। रोब और डिजिटल फ्रेश से जवाब उनके साथ सामना करने का प्रयास करते हैं, लेकिन फिर भी असफल हो जाएंगे यदि / वर्ण क्वेरी स्ट्रिंग या खंड (जो मान्य है) में मौजूद है।

इसके बजाय, बस:

var pagename= location.pathname.split('/').pop(); 
4

समाधान यहाँ के अधिकांश लाभ window.location ऑब्जेक्ट की नहीं ले रहे हैं। स्थान ऑब्जेक्ट में इस अद्भुत चीज़ को पथनाम कहा जाता है जो केवल पथ, कोई क्वेरी स्ट्रिंग, होस्ट, प्रोटोकॉल, हैश इत्यादि देता है।

var mypage = window.location.pathname.split("/").pop(); 
संबंधित मुद्दे