在第一部分之后拆分/

时间:2016-12-11 13:44:04

标签: javascript split

我正在使用这样的分割函数:

function getFirstPart(str) {
    return str.split('/')[0];
}
function getSecondPart(str) {
    return str.split('/')[1];
}

对于第一部分,它正如预期的那样工作,但对于第二部分,我希望一切都在第一位/。 例如,在/stub/787878/hello中,我希望存根作为第一部分,/787878/hello作为第二部分。

如何为这种情况制作模式。

3 个答案:

答案 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);
}

代码没有被测试,我只是想给你一个想法。