其实很多寻址需求里面都会有这样的api设计
举例:
"a.js" ===> "./"
"a/b.js" ===> "a/"
"a/b/c.js" ===> "a/b/"
http://jsperf.com/regex-vs-split/2 这篇test case里面探究了3种方式,有正则也有string本身的split等实现。
//最快的也是seajs采用的
function dirname(path){
var s = path.match(/.*(?=\/.*$)/);
return (s ? s[0] : '.') + '/';
}
贴一下其他的两种吧
function dirname(path){
var s = path.split('/').slice(0,-1).join('/');
return s ? s : '.';
}
function dirname(path){
var s = ('./' + path).replace(/(.*)?\/.*/, '$1').substring(2);
return s ? s : '.';
}

本文介绍了一种用于解析文件路径的API设计方法,并对比了三种不同的实现方案:使用正则表达式、字符串分割以及字符串替换的方法。通过实际测试案例,文章展示了不同方法的性能差异,并推荐了最快且被seajs采用的正则表达式匹配方法。
550

被折叠的 条评论
为什么被折叠?



