从包含空格的字符串中获取路径

时间:2018-07-17 15:09:17

标签: javascript windows

我正在尝试使用诸如“ turtle util / java test”之类的字符串并返回“ util / java test”。这是在Windows中,因此允许在文件和文件夹中留有空格。

目前,我有:

    let inputLength = line.split(" ").length;//if there's preceding text
    let inputStrip = line.split(" ")[inputLength - 1];

但是,这对于带空格的文件/文件夹不起作用。问题是我需要从字符串中删除的空格之前可能存在诸如“ turtle”之类的前置文本。

所以一个例子是我有一个字符串: “乌龟添加文档/测试设置/file.js” 我希望结果是: “文档/测试设置/file.js”

或者我可以有: “文档/测试设置/file.js” 我希望结果是: “文档/测试设置/file.js”

或者我可以有: “添加文档/测试设置/file.js”  我希望结果是: “文档/测试设置/file.js”

但是我也可能有一个极端: “单词git turtle添加目录字段doc / A文件夹/我的后顾之忧/往下走/turtle/file.txt”

应该变成:“文档/文件夹/我的后顾之忧/往下走/turtle/file.txt”

目标是在文件路径之前删除可能为空或多个单词的字符,但是文件路径中可能包含空格。

谢谢!

3 个答案:

答案 0 :(得分:0)

使用shift()splice()方法。

通过使用shift()方法,

var input = "turtle util/java test".split(" ");
input.shift();
input.join(" ");

通过使用splice()方法,

var input = "turtle util/java test".split(" ");
    input.splice(0, 1);
    input.join(" ");

答案 1 :(得分:0)

您可以执行以下操作:

let path = 'turtle util/java test';
let firstIndexOfSpace = path.indexOf(' ');

let removedTurtle = path.substring(firstIndexOfSpace);

也许您应该使用警卫,因为firstIndexOfSpace可能是-1

答案 2 :(得分:0)

你去了。 :)

function fetchPath(command) {
  var commandArray = command.split(" ");
  var pathArray = [];
  var i=commandArray.length-1;
  // push the last one which is for sure is a part of the path
  pathArray.push(commandArray[i--]); 

  for(i; i>=0; i--) {
      if(commandArray[i].indexOf('/') > -1) {
        pathArray.unshift(commandArray[i]);
      }
  }

  return pathArray.join(' ');
}


console.log(fetchPath('turtle add Documents/Test Settings/file.js'));
console.log(fetchPath("add Documents/Test Settings/file.js"));
console.log(fetchPath('Documents/Test Settings/file.js'));
console.log(fetchPath('word git turtle add catalog field doc/A folder/my worries/going down/turtle/file.txt'));