格式化路径字符串在javascript

formatting path string in javascript

本文关键字:javascript 字符串 路径 格式化      更新时间:2023-09-26

如果你觉得你必须对这个问题投反对票,我会很感激你能对此发表评论:有反馈总比没有反馈好。


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

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

  • 使用Nodejs中已有的函数
  • 或者更有效率/简洁。
源代码:

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

我的目标是自动安装电源组件与gulp的chrome扩展项目

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