Javascript 如何从由“|”分隔的字符串中提取最后一个文本

Javascript 如何从由“|”分隔的字符串中提取最后一个文本,javascript,separator,Javascript,Separator,我有一根和你一样的绳子 a|b|c|d|e|....|n 我需要用javascript获取此字符串中的最后一项。此字符串中可能有n个项目。 提前感谢。有点冗长,但可能是最直接的方式: yourString.split('|').slice(-1)[0] var str = 'a|b|c|e|f'; var arr = str.split('|'); // split into array alert(arr[arr.length-1]); // get last element of the

我有一根和你一样的绳子

a|b|c|d|e|....|n
我需要用javascript获取此字符串中的最后一项。此字符串中可能有n个项目。
提前感谢。

有点冗长,但可能是最直接的方式:

yourString.split('|').slice(-1)[0]
var str = 'a|b|c|e|f';
var arr = str.split('|'); // split into array
alert(arr[arr.length-1]); // get last element of the array

现在是完全不同的时刻

/(?:\||^)([^|]*)$/.exec(str)[1]
试试看

str='asfd|asdf|as|df|as|asdf|asf';
str.split('|').slice(b.length-1)[0]

如果字符串很长,则应避免使用.split“|”,因为这将创建一个可能包含许多元素的新数组。我喜欢.split“|”,因为它明确了您要做什么,但如果您想要提高效率,可以使用:

yourString.substr(yourString.lastIndexOf('|')+1)

这甚至适用于abc、abc |和| abc等极端情况,因为如果找不到任何内容,lastIndexOf将返回-1。

将其拆分为|,并获取数组中的最后一项?yourString.split'|'。pop可以更短,不是吗@法布里西奥·马特:哦,好的观点,请加上这一点作为你自己的答案=不,dw,.pop只是slice-1[0]的一个缩短版本,两者几乎相同,但我的抽象级别更高。=]我不会说它们完全一样。slice-1正在复制阵列的1长度子阵列,然后获取第0个元素。pop变异数组并返回最后一个元素,这就是我通常不使用.pop的原因,因为变异,但在本例中,它将变异.split“|”返回的中间数组,该数组无论如何都会被丢弃。虽然最有效的解决方案是使用.lastIndexOfAlso,/\\| ^[^ |]*$/.execstr[2]是最短的方法。@RakeshHolkar:Hm,你是怎么尝试的?对我来说很好。@RakeshHolkar:我正在测试它,它正在工作。我想我已经说得很清楚了。
yourString.substr(yourString.lastIndexOf('|')+1)