2011-12-06 8 views
2

htmlで絶対パスを取得できますか?javascriptで絶対パスを取得

私はlocation.hrefを使用するとURLを取得できますが、どうすればfilename.htmlをトリミングできますか?

ここでは、パスを取得するためのより良い方法です。

ありがとうございます!

+0

[MDN window.location](https://developer.mozilla.org/en/DOM/window.location) – epascarello

答えて

4

location.pathnameは、あなたにURLのローカル部分を与えます。

location.pathname.match(/[^\/]+$/)[0]最後の部分のみが表示されます。あなたがhttp://somedomain/somefolder/file.html上にある場合 - それはあなたがこのページのfile.html

+1

マッチの後に '[0]'を追加すると、実価。さもなければ、あなたは一致の配列で終わります(*この場合1つ*) –

+0

そうです。ありがとう! –

2
var full = location.pathname; 
var path = full.substr(full.lastIndexOf("/") + 1); 
3

を与えるあなたはwindow.locationオブジェクトを調べる場合は、

hash:  
host:  stackoverflow.com 
hostname: stackoverflow.com 
href:  http://stackoverflow.com/questions/8401879/get-absolute-path-in-javascript 
pathname: /questions/8401879/get-absolute-path-in-javascript 
port:  
protocol: http: 
search:  

Documentation at MDN

が表示されますので、location.pathnameあなたが望むものです。最後の部分を抽出する場合は、正規表現を使用します。

var lastpart = window.location.pathname.match(/[^\/]+$/)[0]; 
0

このお試しください:

var loc = window.location.href; 
var fileNamePart = loc.substr(loc.lastIndexOf('/') + 1); 
0

それとも、 '/' 最後に、プロトコルのすべてを必要とする場合に使用することができます:

new RegExp('[^?]+/').exec(location.href) 

とそれが一致することを心配しないでくださいを最初の '/'は貪欲な量指定子であるため、可能な限り一致することを意味します。最初の部分 '[^?]'は、t.php?param1=val1/val2のようなパラメータ値に '/'が現れる可能性があるため、パラメータの前に一致することを止めることです。

関連する問題