重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

javascirptで、現在のページのディレクトリを取得し
サイトルート相対パスで表示させるには
どうしたらよいでしょうか?

例;http://testweb.co.jp/test01/test02/test.html

  ↓ サイトルート相対パスでディレクトリのみを表示

 /test01/test02/

A 回答 (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.
正規表現はかなりアバウトですので、如何なるルート環境でも、完璧に相対パスを取得出来る事を確約する物ではない事を。あらかじめお断りして置きます。
    • good
    • 0

ん~?いまいち状況がわかりませんが


カレントのurlの取得はlocationを使えばよいかと

<script>
var url=window.location;
var rex = new RegExp("ttp://.*?(/.*/)");
alert (rex.exec(url)[1])
</script>
    • good
    • 0

正規表現?



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

この回答への補足

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

補足日時:2011/06/14 13:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!