获取拆分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