2013-05-25 2 views
15

में अंतिम निर्देशिका को हटाएं मैं एक यूआरएल के अंतिम निर्देशिका भाग को हटाने की कोशिश कर रहा हूं। मेरा यूआरएल इस तरह दिखता है:यूआरएल

https://my_ip_address:port/site.php?path=/path/to/my/folder

जब एक बटन पर क्लिक, मैं

https://my_ip_address:port/site.php?path=/path/to/my को यह बदलना चाहते हैं। (अंतिम भाग को हटाएं)।

मैं पहले से ही window.location.replace(/\/[A-Za-z0-9%]+$/, "") की कोशिश की है, जो

https://my_ip_address:port/undefined का परिणाम है।

मुझे ऐसा करने के लिए क्या रेगेक्स का उपयोग करना चाहिए?

+1

आप बस '/../' जोड़ सकते हैं। एलओएल बस मजाक कर रहा है, यहां [असली सौदा] है (http://regex101.com/r/nZ4jU4) – HamZa

+1

@HamZaDzCyberDeV मैं इंजेक्शन से बचने के लिए पथ में '.' को अनदेखा कर रहा हूं। लेकिन आपके लिंक के लिए धन्यवाद! – pascalhein

+0

@HamZaDzCyberDeV किसी भी तरह से मुझे 'प्रतिस्थापन' का उपयोग नहीं किया जाता है: 'window.location.replace (/(.*)\/.*/," \ 1 "); '' https: // my_ip_address में परिणाम: पोर्ट /(.*)\/.*/ ' – pascalhein

उत्तर

22

स्पष्टीकरण: "/" द्वारा विस्फोट, पॉप के साथ अंतिम तत्व को हटाएं, "/" के साथ फिर से जुड़ें।

function RemoveLastDirectoryPartOf(the_url) 
{ 
    var the_arr = the_url.split('/'); 
    the_arr.pop(); 
    return(the_arr.join('/')); 
} 

बेला http://jsfiddle.net/GWr7U/

+0

धन्यवाद, जो काम करता है – pascalhein

+0

@csharpler मदद करने में खुशी :) – Sharky

5

देख इस कोड का उपयोग के लिए, यूआरएल लिंक से अंतिम तत्व निकाला।

string url = Request.Url.ToString(); 
      string removelastdir = url.Substring(0, url.LastIndexOf('/')); 
+0

यह सी # के लिए काम करता है, लेकिन जावास्क्रिप्ट के लिए नहीं। जेएस के लिए – Dykotomee

+2

: स्ट्रिंग removelastdir = url.substring (0, url.lastIndexOf ('/')); – SanR