`
zhangyaochun
  • 浏览: 2560936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

seajs源码相关之dirname

阅读更多

其实很多寻址需求里面都会有这样的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 : '.';
}
 

 

0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics