2013-05-25 20 views
15

Bir URL'nin son dizin bölümünü kaldırmaya çalışıyorum. URL'm şunun gibi görünüyor:URL'de son dizini kaldır

https://my_ip_address:port/site.php?path=/path/to/my/folder. Bir düğmeye tıklandığında

, ben

https://my_ip_address:port/site.php?path=/path/to/my bu değiştirmek istiyorum. (Son parçayı kaldırın).

Zaten

https://my_ip_address:port/undefined hangi sonuçları window.location.replace(/\/[A-Za-z0-9%]+$/, "") çalıştı.

Bunu yapmak için hangi Regex kullanmalıyım?

+1

Ayrıca, sadece///ekleyebilirsiniz. LOL sadece şaka yapıyor, işte burada [gerçek anlaşma] (http://regex101.com/r/nZ4jU4) – HamZa

+1

@HamZaDzCyberDeV Enjeksiyondan kaçınmak için '.' göz ardı ediyorum. Ama bağlantın için teşekkürler! – pascalhein

+0

@HamZaDzCyberDeV Her nasılsa "replace": window.location.replace (/(.*)\/.*/, "\ 1") işlevini nasıl kullanamayacağım? Https: // my_ip_address: port /(.*)\/.*/ ' – pascalhein

cevap

22

Açıklama: "/" ile patlat, son öğeyi pop ile kaldır, "/" ile tekrar birleştir.

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

bu kodu kullanmak için fiddle http://jsfiddle.net/GWr7U/

+0

sayesinde, bu – pascalhein

+0

@csharpler yardımcı olmak için çalışıyor :) – Sharky

5

bkz URL bağlantısından son öğe kaldırılamaz.

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

Bu C# için çalışır, ancak Javascript için değil. Js için – Dykotomee

+2

: string removelastdir = url.substring (0, url.lastIndexOf ('/')); – SanR