- ベストアンサー
javascript 相対パス表示
javascirptで、現在のページのディレクトリを取得し サイトルート相対パスで表示させるには どうしたらよいでしょうか? 例;http://testweb.co.jp/test01/test02/test.html ↓ サイトルート相対パスでディレクトリのみを表示 /test01/test02/
- みんなの回答 (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)
ん~?いまいち状況がわかりませんが カレントのurlの取得はlocationを使えばよいかと <script> var url=window.location; var rex = new RegExp("ttp://.*?(/.*/)"); alert (rex.exec(url)[1]) </script>
- yambejp
- ベストアンサー率51% (3827/7415)
正規表現? <script> var url="ttp://testweb.co.jp/test01/test02/test.html"; var rex = new RegExp("ttp://.*?(/.*/)"); alert (rex.exec(url)[1]) </script>
補足
現在のurlを取得しして、パスのみを表示させていのですが ドメインが複数なので「urlの取得」も含む記述が知りたいのです。