javascript版 trim と path 処理関連

Date
2006-08-17 (Thu)
Category
javascript

よく使う trim は String を prototype で拡張しました。ので、同名で違うことをしている人は、注意。path 関連は php に強く影響を受けています。というかもっときれいに書き直したいので、obsolete になる可能性大ですが、とりあえず挙げておきます。

使い方としては、

p = Path("http://umbra.nascom.nasa.gov/eit/images/eclipse/williams/Williams_College_wl.jpg")
alert(p["domain"]) // umbra.nascom.nasa.gov と表示される。 alert(p["dirname"]) // /eit/images/eclipse/williams と表示される。 alert(p["basename"]) // Williams_College_wl.jpg と表示される。 alert(p["extension"]) // jpg と表示される。

こんな感じ。Path() の戻り値は Object ではなくて Array です。Associated Array というか Hash なので、prototype.js でほにゃほにゃしたい時は例えば、

p = $H(Path("http://umbra.nascom.nasa.gov/eit/images/eclipse/williams/Williams_College_wl.jpg"));
p.each(function(el){
   alert(el)
});

とかすると

domain, umbra.nascom.nasa.gov
dirname, /eit/images/eclipse/williams
basename, Williams_College_wl.jpg
extension, jpg

みたいになります。

Source は以下。

String.prototype.trim = function() {
   return this.replace(/^\s+|\s+$/g, '');
}
function Path(str) { str = str.trim();
var path; var array; var result = new Array(); var absolute = true;
_i = str.indexOf(':/'); if ((_i > 0) && (_i < 6 )) { path = str.substring( (_i+2), str.length ); array = path.split('/'); array.shift(); result["domain"] = array.shift(); } else { path = str; array = path.split('/'); if (str.indexOf('/') == 0) { array.shift(); } else { absolute = false; } }
_len = array.length;
temp = array.slice(0, (_len - 1)); if (absolute) { result["dirname"] = '/' + temp.join('/'); } else { result["dirname"] = temp.join('/'); }
result["basename"] = array[(_len - 1)];
_index = result["basename"].lastIndexOf('.'); if (_index != -1) { result['extension'] = result['basename'].substring((_index + 1)); }
return result; }

Comment:0

Comment Form

Remember Me?


Trackback:0

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/185
Listed below are links to weblogs that reference
javascript版 trim と path 処理関連 from The Croton

Return to Page Top