2010-12-21 18 views
12
var url = 'http://domain.com/file.php?id=1'; 

याजावास्क्रिप्ट: प्राप्त url पथ

var url = 'https://domain.us/file.php?id=1' 

या

var url = 'domain.de/file.php?id=1'; 

या

var url = 'subdomain.domain.com/file.php?id=1' 

इन url मैं केवल पथ प्राप्त करना चाहते हैं दोनों में से किसी एक से , उपर्युक्त मामले में:

var path = '/file.php?id=1'; 
+0

भी देखें http://stackoverflow.com/questions/736513/how-do-i-parse- ए-यूआरएल-इन-होस्टनाम-एंड-पथ-इन-जावास्क्रिप्ट –

उत्तर

40

आप सकता है regex के साथ करते हैं, लेकिन इन देशी गुणों का उपयोग करके यकीनन सबसे अच्छा तरह से यह करने के लिए कर रहे हैं।

var url = 'subdomain.domain.com/file.php?id=1', 
    a = document.createElement('a'); 

a.href = 'http://' + url; 
var path = a.pathname + a.search; // /file.php?id=1 

See it on jsFiddle.net

+0

एंकर टैग का चालाक उपयोग! यह पहले नहीं देखा :) – rtpHarry

+0

ग्रेट उत्तर एलेक्स, लेकिन अगर यूआरएल 'subdomain.domain.com/myfiles/file.php?id=1' जैसा है और मैं बस '/file.php?id' प्राप्त करना चाहता हूं = 1 ', मुझे रेगेक्स का उपयोग करना चाहिए, नहीं? – stecb

+1

@steweb उस स्थिति में, ऊपर दिए गए कोड का उपयोग करके पथ प्राप्त करें, और उसके बाद [रेगेक्स के साथ पहला सेगमेंट डालें] (http://jsfiddle.net/alexdickson/BdE8G/) 'path.replace (/^\/[^\ /] + /, ''); ' – alex

0

उपयोग string.lastIndexOf एक regex के बजाय (searchstring, शुरू)। फिर जांच करें कि क्या सूचकांक सीमा के भीतर है और स्ट्रिंग के अंत तक अंतिम स्लैश से सबस्ट्रिंग प्राप्त करें।

2

यह संस्करण रेगेक्स के साथ है। इस आजमाएं:

var splittedURL = url.split(/\/+/g); 
var path = "/"+splittedURL[splittedURL.length-1]; 
+1

बस एक सुझाव, आप अंतिम सदस्य प्राप्त करने के लिए 'splittedURL.pop()' का उपयोग कर सकते हैं :) – alex

+0

धन्यवाद बहुत एलेक्स, मुझे पॉप() - wtf के बारे में पता नहीं था :) – stecb

6

डगलस Crockford की किताब "जावास्क्रिप्ट: अच्छी पार्ट्स", सभी यूआरएल भागों retreiving के लिए एक regex है। यह पेज 66 पर है और आप इसे यहाँ देख सकते हैं: http://books.google.ch/books?id=PXa2bby0oQ0C&pg=PA66

आप कॉपी और यहाँ से चिपका सकते हैं: http://www.coderholic.com/javascript-the-good-parts/

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