[JavaScript] PHPのpathinfoみたいなjavascript関数

2016年6月28日

Javascript テクノロジー プログラミング

PHPのpathinfo関数が便利だというブログを書いていたら、JavaScriptで使う時も同じものが欲しくなり、 とりあえず、サクッと作っておきました。 スニペットなので、コピペしてお使いください。

ソース

URL情報取得

urlinfo=function(uri){ if(!uri){uri = location.href} var data={}; //URLとクエリ分離分解; var query=[]; if(uri.indexOf("?")!=-1){query = uri.split("?")} else if(uri.indexOf(";")!=-1){query = uri.split(";")} else{ query[0] = uri; query[1] = ''; } //基本情報取得; var sp = query[0].split("/"); var data={ url:query[0], dir:this.pathinfo(uri).dirname, domain:sp[2], protocol:sp[0].replace(":",""), query:(query[1])?(function(q){ var data=[]; var sp = q.split("&"); for(var i=0;i<sp .length;i++){ var kv = sp[i].split("="); if(!kv[0]){continue} data[kv[0]]=kv[1]; } return data; })(query[1]):[], }; return data; }; ## 使い方 urlinfo("http://wordpress.ideacompo.com/hoge/hoge/index.php?q=123"); console.log(urlProperty.url); console.log(urlProperty.dir); console.log(urlProperty.domain); console.log(urlProperty.protocol); console.log(urlProperty.query.q); ## 結果 http://wordpress.ideacompo.com/hoge/hoge/index.php http://wordpress.ideacompo.com/hoge/hoge/ wordpress.ideacompo.com 80 123

path情報取得

pathinfo = function(p){ var basename="", dirname=[], filename=[], ext=""; var p2 = p.split("?"); var urls = p2[0].split("/"); for(var i=0; i<urls.length-1; i++){ dirname.push(urls[i]); } basename = urls[urls.length-1]; var basenames = basename.split("."); for(var i=0;i<basenames.length-1;i++){ filename.push(basenames[i]); } ext = basenames[basenames.length-1]; return { "hostname":urls[2], "basename":basename, "dirname":dirname.join("/"), "filename":filename.join("."), "extension":ext, "query":(p2[1])?p2[1]:"", "path":p2[0] }; }; ## 使い方 pathinfo("/system/log/info.dat"); console.log(urlProperty.dirname); console.log(urlProperty.basename); console.log(urlProperty.filename); console.log(urlProperty.extension); ## 結果 /system/log info.dat info dat Ajax操作をする場合や、サーバーの同一階層の特定のファイルを取得する場合など、パス情報を取得したい場面は結構あるはずなので、便利に使ってくだされ。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ