按最后一个逗号拆分字符串

8

我在jQuery中有一个字符串。

var s = "Text1, Text2, Text,true";

我需要将这个变量分为两部分:

var s1 = substring(...); //after this s1="Text1, Text2, Text"
var s2 = substring(...); //after this s2="true"

你能帮我拆分变量吗?


2
你可以使用.lastIndexOf(",") - Ionică Bizău
实际上,您可以使用jQuery的split()函数。 - Drixson Oseña
1
@DrixsonOseña他在问题中没有标记jQuery,所以仅为此目的包含库可能有些过度。特别是因为他可以使用JavaScript的本机split函数。 - TommyBs
@TommyBs,哎呀,对不起我没看到。谢谢你告诉我。 - Drixson Oseña
5个回答

14
var s="Text1, Text2, Text,true";
var lastIndex = s.lastIndexOf(",")

var s1 = s.substring(0, lastIndex); //after this s1="Text1, Text2, Text"
var s2 = s.substring(lastIndex + 1); //after this s2="true"

这绝对是最佳答案。+1 - Dimitar Dimitrov
我不知道,它执行了两次lastIndexOf,效率教导我们如果需要多次运行函数,则将函数的返回值存储在变量中。 - Jimmy
2
@Jimmy 我也考虑到了那个问题。 :-) 已更新。 - Ionică Bizău


2
var index = s.lastIndexOf(",");
var first = str.substr(0, index );
var last = str.substr(index + 1);

或者使用 slice

var first = str.slice(0, index);
var last = str.slice(index +1);

1
第二个参数不是必需的(s.length)。 - Ionică Bizău

1

尝试

var array = s.match(/(.*),(.*)/);
var s1 = array[1];
var s2 = array[2]

9
顺带一提,/(.*),(.*)/也是惊讶的猫头鹰表情符号。 - Tomalak

0
var s = "Text1, Text2, Text,true";
var n = s.lastIndexOf(",");

var s1 = s.substring(0, n);
var s2 = s.substring(n + 1);

http://jsfiddle.net/Y6yjr/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接