获取拆分string数组的最后一个元素

我需要获得多个分隔符拆分数组的最后一个元素。 分隔符是逗号和空格。 如果没有分隔符,它应该返回原始string。

如果string是“今天怎么样,你在做什么?” 它应该返回“今天?”

如果input是“你好”,输出应该是“你好”。

我怎样才能在JavaScript中做到这一点?

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

在这一点上, pieces是一个数组, pieces.length包含数组的大小,所以为了获得数组的最后一个元素,你检查pieces[pieces.length-1] 。 如果没有逗号或空格,则只会输出string。

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

一切都有一个单一的线。 🙂

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

给以下几点:

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

它有效吗?

如果你不想构造一个数组…

 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)/ 

replace只是说,用最后一个分隔符后的东西replace整个string。

所以你可以看到这一般如何应用。 请注意,原始string未被修改。

 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 >>"; 

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

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