在Javascript中从逗号分隔值中获取第一个和其余的字符串

时间:2012-11-12 09:19:32

标签: javascript string

给出这样的字符串:

"boy, girl, dog, cat"

获得第一个单词和其他单词的好方法是什么,所以我可以这样:

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

现在我有这个:

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

5 个答案:

答案 0 :(得分:3)

您可以同时使用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)];
}

答案 1 :(得分:0)

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

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

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

  • strings[0]包含完整字符串
  • strings[1]包含第一个逗号
  • 之前的字符串
  • strings[2]包含第一个逗号后的所有内容

答案 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()调用以删除空格。

答案 3 :(得分: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

答案 4 :(得分:0)

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

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