获取拆分字符串数组的最后一个元素

时间:2009-03-16 18:17:49

标签: javascript split

我需要使用多个分隔符来获取split数组的最后一个元素。分隔符是逗号和空格。如果没有分隔符,则应返回原始字符串。

如果字符串是“你今天怎么样?”它应该返回“今天?”

如果输入为“hello”,则输出应为“hello”。

我如何在JavaScript中执行此操作?

8 个答案:

答案 0 :(得分:668)

一切都是单行的。 :)

var output = input.split(/[, ]+/).pop();

答案 1 :(得分:96)

var str = "hello,how,are,you,today?";
var pieces = str.split(/[\s,]+/);

此时,pieces是一个数组,pieces.length包含数组的大小,因此要获取数组的最后一个元素,请检查pieces[pieces.length-1]。如果没有逗号或空格,它将只输出给定的字符串。

alert(pieces[pieces.length-1]); // alerts "today?"

答案 2 :(得分:43)

var item = "one,two";
var lastItem = item.split(",").pop(-1);

这不起作用吗?

答案 3 :(得分:8)

您还可以考虑反转数组并采用第一个元素。这样,您不必知道长度,但是它并没有带来真正的好处,也没有带来大数组反向操作可能需要更长时间的缺点:

array1.split(",").reverse()[0]

虽然很容易,但也修改了有问题的原始数组。这可能是问题,也可能不是问题。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse

也许您可能想使用它:

array1.split(",").pop()

答案 4 :(得分:3)

如果您不想构建数组......

var str = "how,are you doing, today?";
var res = str.replace(/(.*)([, ])([^, ]*$)/,"$3");

英语的细分是:

/(anything)(any separator once)(anything that isn't a separator 0 or more times)/

替换只是说用最后一个分隔符之后的东西替换整个字符串。

所以你可以看到一般如何应用它。请注意,原始字符串未被修改。

答案 5 :(得分:3)

array.split(' ').slice(-1)[0]

有史以来最好的,也是我的最爱。

答案 6 :(得分:1)

您可以直接访问数组索引:

var csv = 'zero,one,two,three'; csv.split(',')[0]; //result: zero csv.split(',')[3]; //result: three

答案 7 :(得分:0)

var title = 'fdfdsg dsgdfh dgdh dsgdh tyu hjuk yjuk uyk hjg fhjg hjj tytutdfsf sdgsdg dsfsdgvf dfgfdhdn dfgilkj,n, jhk jsu wheiu sjldsf dfdsf hfdkdjf dfhdfkd hsfd ,dsfk dfjdf ,yier djsgyi kds';
var shortText = $.trim(title).substring(1000, 150).split(" ").slice(0, -1).join(" ") + "...More >>";