用Javascript的.split()

时间:2019-01-07 11:09:35

标签: javascript php

对于基本用途,这些功能相同。根据额外的字符串将输入字符串拆分为数组。两者都带有一个额外的“极限”变量。

但是,在PHP中,该限制意味着您匹配了 limit 个项目之后,字符串的其余全部都进入了数组的最后一个项目。这实际上非常有用。

JS的限制意味着一旦您的返回数组具有 limit 个项目,它就会停止向其中添加项目。这种限制的实现是无用的,并且可以很容易地与其他数组函数一起模拟。

那么有没有一种简单的方法可以用JS模拟PHP的方法呢?

将以下内容视为输入字符串:

$str = "7,43,This is a long sentence, know what I mean?";

我希望$str.split(",",3);返回此数组:

{"7","43","This is a long sentence, know what I mean?"}

2 个答案:

答案 0 :(得分:4)

使用String#splitArray#spliceArray#joinspread operator

const s = "7,43,This is a long sentence, know what I mean?"

function explode(delimiter, str, limit) {
  const data = str.split(delimiter);
  return [...data.splice(0, limit - 1), data.join(delimiter)];
}

const res = explode(',', s, 3);

console.log(res);

答案 1 :(得分:3)

使用String.splitArray.sliceArray.concatArray.join这样的事情应该可以满足您的要求:

function explode(char, str, limit) {
    let a = str.split(char);
    return a.slice(0, limit-1).concat(a.slice(limit-1).join(char));
}

let str = "7,43,This is a long sentence, know what I mean?";

console.log(explode(',', str, 3));