2012-11-12 113 views
2

给定一个字符串,像这样:获取字符串的第一个休息的逗号分隔值在Javascript

"boy, girl, dog, cat" 

什么是得到的第一个字和他们的休息的好方法,这样我就可以有这样的:

var first_word = "boy"; 
var rest = "girl, dog, cat"; 

现在我有这样的:

my_string.split(",");但是,这给了我所有的都是逗号之间的话。

回答

2

您可以同时使用splitsplice

var str = "boy, girl, dog, cat"; 
var arr = str.split(","); 
var fst = arr.splice(0,1).join(""); 
var rest = arr.join(","); 

或者类似

// returns an array with the extracted str as first value 
// and the rest as second value 
function cutFirst(str,token){ 
    var arr = str.split(token); 
    var fst = arr.splice(0,1); 
    return [fst.join(""),arr.join(token)]; 
} 
+0

精彩完成 – Moitt

0

您可以使用正则表达式的第一个逗号前后两个字符串匹配:

var v = "boy, girl, dog, cat"; 
var strings = v.match(/([^,]*),(.*)/); 

现在strings将是一个三元素数组,其中

  • strings[0]包含完整的字符串
  • strings[1]包含第一个逗号
  • strings[2]包含第一个逗号
0

使用substring()组合(返回两个指标之间的串后,之前的所有字符串或字符串的结尾)和indexOf()(返回另一个字符串中子字符串的第一个位置):

var input = "boy, girl, dog, cat", 
    pos = input.indexOf(','); 

console.log(input.substring(0, pos)); 
console.log(input.substring(pos + 1)); 

也许你想添加一个trim()调用结果来删除空格。

0

另一个选择是分裂阵列,获得第一和加盟休息:

var my_string = "boy, girl, dog, cat"; 
var splitted = my_string.split(','); 
var first_item = splitted.shift(); 
var rest_of_the_items = splitted.join(','); 

这里是JSFiddle

0

您可以用懒惰的方式创建一个数组,然后检索第一个元素。

var ArrayFromString = "boy, girl, dog, cat".split(","); 
firstElement = ArrayFromString.pop(); 
alert(firstElement); //boy 
alert(ArrayFromString); //girl, dog, cat​​​​​​​​​​​​​​​​​ 
相关问题