Я пытаюсь взять строку, такую как "turtle util/java test" и вернуть "util/java test". Это в окнах, поэтому допускаются пробелы в файлах и папках.
В настоящее время у меня есть:
let inputLength = line.split(" ").length;//if there preceding text
let inputStrip = line.split(" ")[inputLength - 1];
Однако это не работает для файлов/папок с пробелами. Проблема в том, что перед пространством, которое мне нужно удалить из строки, может существовать предшествующий текст, такой как "черепаха".
Таким образом, у меня есть строка: "turtle add Documents/Test Settings/file.js" Я хочу, чтобы результат был: "Documents/Test Settings/file.js"
или я мог бы: "Documents/Test Settings/file.js", и я хочу, чтобы результат был: "Documents/Test Settings/file.js"
или я мог бы: "добавить Documents/Test Settings/file.js", и я хочу, чтобы результат был: "Documents/Test Settings/file.js"
Однако я мог бы также иметь экстремальный вид: "word git turtle add catalog field doc/A folder/my worries/going down/turtle/file.txt"
Это должно стать: "папка doc/A/my worries/going down/turtle/file.txt"
Цель состоит в том, чтобы удалить символы, которые могут быть ничем или несколькими словами, перед файловым путем, однако путь к файлу может содержать пробел.
Спасибо!
Вот так. :)
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'));
Вы могли бы сделать что-то вроде этого:
let path = 'turtle util/java test';
let firstIndexOfSpace = path.indexOf(' ');
let removedTurtle = path.substring(firstIndexOfSpace);
Возможно, вы должны использовать охрану, потому что firstIndexOfSpace
может быть -1
.
Используйте метод 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(" ");