给出这样的字符串:
"boy, girl, dog, cat"
获得第一个单词和其他单词的好方法是什么,所以我可以这样:
var first_word = "boy";
var rest = "girl, dog, cat";
现在我有这个:
my_string.split(",");
但是这给了我逗号之间的所有单词。
答案 0 :(得分:3)
您可以同时使用split
和splice
:
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