• ベストアンサー

javascript 相対パス表示

javascirptで、現在のページのディレクトリを取得し サイトルート相対パスで表示させるには どうしたらよいでしょうか? 例;http://testweb.co.jp/test01/test02/test.html   ↓ サイトルート相対パスでディレクトリのみを表示  /test01/test02/

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1336/1814)
回答No.3

とりあえず下記サンプルで、いわゆる「そのページの相対パスでのディレクトリ」を取得出来ます。 ━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━ <script type="text/JavaScript"><!-- window.onload = function(){ var my_url = window.location.href; if ( my_url.match(/^https?:\/\/([0-9a-z\.\-:]+?)(\/[0-9a-z_\-\/]+\/)([^\/][0-9a-z_\.\-:]+\.[0-9a-z]+?)$/) ) { alert( RegExp.$2 ); } else { alert( 'NoData...' ); } }; //--></script> ━ ココまで ━━━━━━━━━━━━━━━━━━━━━━━━ 取得した相対パスを色々と活用したい場合には、関数内のグローバル変数である“RegExp.$2”に格納されてます。ので、適当に“var my_dir = RegExp.$2”みたいな感じで加工して使って下さい。 P.S. 正規表現はかなりアバウトですので、如何なるルート環境でも、完璧に相対パスを取得出来る事を確約する物ではない事を。あらかじめお断りして置きます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ん~?いまいち状況がわかりませんが カレントのurlの取得はlocationを使えばよいかと <script> var url=window.location; var rex = new RegExp("ttp://.*?(/.*/)"); alert (rex.exec(url)[1]) </script>

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

正規表現? <script> var url="ttp://testweb.co.jp/test01/test02/test.html"; var rex = new RegExp("ttp://.*?(/.*/)"); alert (rex.exec(url)[1]) </script>

renarena85
質問者

補足

現在のurlを取得しして、パスのみを表示させていのですが ドメインが複数なので「urlの取得」も含む記述が知りたいのです。