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
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