167 javascript split
我需要使用多个分隔符来获取split数组的最后一个元素.分隔符是逗号和空格.如果没有分隔符,则应返回原始字符串.
如果字符串是"你今天怎么样?" 它应该返回"今天?"
如果输入为"hello",则输出应为"hello".
我怎样才能在JavaScript中执行此操作?
Guf*_*ffa 723
一切都是单行的.:)
var output = input.split(/[, ]+/).pop();
Run Code Online (Sandbox Code Playgroud)
Pao*_*ino 109
var str = "hello,how,are,you,today?";
var pieces = str.split(/[\s,]+/);
Run Code Online (Sandbox Code Playgroud)
此时,pieces是一个数组并pieces.length包含数组的大小,以便获取数组的最后一个元素pieces[pieces.length-1].如果没有逗号或空格,它将只输出给定的字符串.
alert(pieces[pieces.length-1]); // alerts "today?"
Run Code Online (Sandbox Code Playgroud)
小智 46
var item = "one,two";
var lastItem = item.split(",").pop(-1);
Run Code Online (Sandbox Code Playgroud)
这不起作用吗?
Smi*_*ver 12
您也可以考虑反转数组并采用第一个元素。这样,您不必知道长度,但是它并没有带来真正的好处,也没有缺点,即对于大数组,反向操作可能需要更长的时间:
array1.split(",").reverse()[0]
Run Code Online (Sandbox Code Playgroud)
虽然很简单,但也可以修改原始数组。那可能是问题,也可能不是问题。
参考:https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
也许您可能想使用它:
array1.split(",").pop()
Run Code Online (Sandbox Code Playgroud)
小智 7
array.split(' ').slice(-1)[0]
Run Code Online (Sandbox Code Playgroud)
有史以来最好的,也是我的最爱。
该at()方法采用整数值并返回该索引处的项目,允许正整数和负整数。负整数从数组中的最后一项开始倒数。
const str = "how,are you doing, today?";
const last = str.split(/[\s,]+/).at(-1);
console.log({last});Run Code Online (Sandbox Code Playgroud)
文档链接:Array.prototype.at()
这种方式很容易理解,而且很简短。
const output = input.split(',').pop().split(' ').pop();
Run Code Online (Sandbox Code Playgroud)