我处于这样一种情况,即我必须分开直到第一次出现角色|
。现在假设我有一个字符串var str = "cat|bird|cow"
,我希望将其分解为
['cat', 'bird|cow']
所以为了做到这一点,我使用了split
字符串方法。正如MDN
教程和Javascript: The Good Parts
一书中所述,有人写过这个方法有两个参数,一个是separator
,另一个是limit
。
这对我来说是理想的方法。但是,当,仅仅为了实验,我在谷歌控制台测试了这个我得到了意想不到的结果!
var a = "cat|bird|cow" // Undefined
a // "cat|bird|cow"
a.split('|', a.indexOf('|')) // ['cat', 'bird', 'cow']
但我不想要这个!
为什么限制不起作用?最后更新的javascript版本删除了吗?
如果'不'那么为什么它不起作用?
谢谢!
答案 0 :(得分:2)
split的第二个参数定义了你想要的项目数量:
a.split('|', 1) // ['cat']
a.split('|', 2) // ['cat', 'bird']
我可能会拆分,切片和加入:
var values = a.split('|');
var output = [values[0], values.slice(1).join('|')];
console.log(output); // ["cat", "bird|cow"]
答案 1 :(得分:2)
你可以简单地说;
var i = a.indexOf("|");
a = [a.substr(a, i), a.substr(i + 1)];
>> ['cat', 'bird|cow']
答案 2 :(得分:2)
执行split
,shift
和join
var ar=str.split('|');
ar=[ar.shift(),ar.join('|')];