javascript - Tag stien fra en streng, der indeholder mellemrum

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at tage en streng som 'turtle util/java test' og og returnere 'util/java test'. Dette er i Windows, så rum i filer og mapper er tilladt.


I øjeblikket har jeg:


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


Men det virker ikke for filer/mapper med mellemrum. Problemet er, at der kan være forudgående tekst som 'skildpadde' før det rum, jeg skal fjerne fra strengen.


Så et eksempel er, at jeg har en streng:
'skildpadde tilføj Dokumenter/Testindstillinger/file.js'
Jeg vil gerne have resultatet:
'Dokumenter/Testindstillinger/file.js'


eller jeg kunne have:
'Dokumenter/Testindstillinger/file.js'
og jeg vil gerne have resultatet:
'Dokumenter/Testindstillinger/file.js'


eller jeg kunne have:
'Tilføj Dokumenter/Testindstillinger/file.js'
 og jeg vil gerne have resultatet:
'Dokumenter/Testindstillinger/file.js'


Men jeg kunne også have en ekstrem som:
'word git turtle tilføje katalog felt doc/En mappe/mine bekymringer/gå ned/skildpadde/file.txt'


Det burde blive: 'doc/en mappe/mine bekymringer/gå ned/skildpadde/file.txt'


Målet er at fjerne de tegn, der kan være intet eller flere ord, før et filepath, men filstien kan indeholde et mellemrum.


Tak!

Bedste reference


Værsgo. :)




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'));



Brug shift() eller splice() metode.


Ved at bruge shift () metode,


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


Ved at anvende splice () metode,


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

Andre referencer 1


Du kunne gøre noget som dette:


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

let removedTurtle = path.substring(firstIndexOfSpace);


Måske skal du bruge en vagt, fordi firstIndexOfSpace kunne være -1.