在javascript中格式化路径字符串

时间:2015-06-08 17:29:55

标签: javascript node.js path format

如果你觉得你不得不对这个问题进行投票,我将不胜感激,对此发表评论:任何反馈都更好,没有反馈意见。

我一直在尝试格式化混合路径数组(unix和windows格式),并在某些情况下删除根目录。

但我想知道是否有人可以提出建议:

  • 使用Nodejs的现有功能
  • 或者更有效率/ succint。

源代码:

var js = [
  "scripts/content.js",
  "dist/styles/styles.css",
  "dist\\vendor\\scripts\\bootstrap.min.js",
  "dist\\vendor\\scripts\\jquery.min.js"
];

var root = 'dist';

var convertPath = function(path) {
    return path.replace(/\\/g,"/");
};

var splitted = function(path) {
    return path.split('/');
};

var pop = function(arr) {
    var l = arr.length;
    if( arr[0] === root ){
      return arr.splice(1,l-1);
    }
    return arr;
};

var merge = function(arr) {
    return arr.join('/');
};

var length = js.length;
var i = 0;

for(i;i < length; i++){
    console.log(js[i] + ' => ' + merge(pop(splitted(convertPath(js[i])))));
}

期望的输出:

"scripts/content.js => scripts/content.js"
"dist/styles/styles.css => styles/styles.css"
"dist\vendor\scripts\bootstrap.min.js => vendor/scripts/bootstrap.min.js"
"dist\vendor\scripts\jquery.min.js => vendor/scripts/jquery.min.js"

JSBin preview

我的目标是为Chrome扩展项目

自动化installation of bower components with gulp

1 个答案:

答案 0 :(得分:2)

var output = js.map(function(i){return i + " => " + i.replace(/\\/g, '/').replace(/^dist\//,'');});