2

给定这样的字符串:

"boy, girl, dog, cat"

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

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

现在我有这个:

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

4

5 回答 5

4

您可以同时使用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)];
}
于 2012-11-12T09:23:20.680 回答
1

使用substring()(返回两个索引之间的子字符串或字符串的结尾)和indexOf()(返回另一个字符串中子字符串的第一个位置)的组合:

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

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

也许您想添加trim()对结果的调用以删除空格。

于 2012-11-12T09:23:54.983 回答
0

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

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

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

  • strings[0]包含完整的字符串
  • strings[1]包含第一个逗号之前的字符串
  • strings[2]包含第一个逗号后的所有内容
于 2012-11-12T09:23:37.543 回答
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(',');

console.log(first_item); // 'boy'
console.log(rest_of_the_items); // 'girl, dog, cat'

于 2012-11-12T09:27:12.173 回答
0

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

var ArrayFromString = "boy, girl, dog, cat".split(",");
firstElement = ArrayFromString.pop();
alert(firstElement); //boy
alert(ArrayFromString); //girl, dog, cat​​​​​​​​​​​​​​​​​
于 2012-11-12T09:30:53.470 回答