我正在尝试使用诸如“ 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”
目标是在文件路径之前删除可能为空或多个单词的字符,但是文件路径中可能包含空格。
谢谢!
答案 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'));