我正在使用这样的分割函数:
function getFirstPart(str) {
return str.split('/')[0];
}
function getSecondPart(str) {
return str.split('/')[1];
}
对于第一部分,它正如预期的那样工作,但对于第二部分,我希望一切都在第一位/。
例如,在/stub/787878/hello
中,我希望存根作为第一部分,/787878/hello
作为第二部分。
如何为这种情况制作模式。
答案 0 :(得分:1)
这就是你要找的东西:
const str = '/stub/787878/hello/911';
const [, firstPart, ...rest] = str.split('/');
const secondPart = '/' + rest.join('/')
console.log('first part: ', firstPart);
console.log('second part: ', secondPart);
答案 1 :(得分:1)
不要尝试使用split
,而是找到斜杠,并将字符串放在其左侧和右侧:
function divideAtSlash(str) {
const index = str.indexOf('/', 1);
return [str.slice(0, index), str.slice(index)];
}
1
的第二个参数(indexOf
)告诉它在第二个字符处开始匹配,因为在这种情况下我们想跳过前导斜杠。
返回元组的第一个元素是/stub
,而不是stub
。如果你想要后者,那么
return [str.slice(1, index), str.slice(index)];
答案 2 :(得分:-1)
我想getSecondPart()
在您的示例中返回787878。
你需要在分割字符串之后检查你的数组中有多少部分,然后返回除第一部分之外的每个部分。
function getSecondPart(str) {
var astr = str.split('/');
str = "";
for(var i = 0; i < astr.length; i++) {
str += "/" + astr[i];
}
return(str);
}
代码没有被测试,我只是想给你一个想法。