Yanıtlar:
var str = "hello,how,are,you,today?";
var pieces = str.split(/[\s,]+/);
Bu noktada, pieces
bir dizidir ve dizinin pieces.length
boyutunu içerir, böylece dizinin son öğesini almak için kontrol edin pieces[pieces.length-1]
. Virgül veya boşluk yoksa, dizeyi verildiği gibi çıkarır.
alert(pieces[pieces.length-1]); // alerts "today?"
var last = str.split(/[\s,]+/).pop()
Her şey için bir astar var. :)
var output = input.split(/[, ]+/).pop();
split
çağrı tarafından oluşturulduğundan , yine de tutulmuyor . Orijinal dize, öğenin diziden kaldırılmasıyla değiştirilmez.
{1,}
, yani [, ]+
kümedeki bir veya daha fazla karakterle (virgül ve boşluk) eşleşen bir nicelik belirtecidir . Dizeden tüm kelimeleri istediğinizde yararlıdır, ancak yalnızca son sözcüğü istediğinizde herhangi bir işlevsel fark yaratmaz, dizide daha az dizgi olacağı için ek yükü azaltır.
var item = "one,two,three";
var lastItem = item.split(",").pop();
console.log(lastItem); // three
.split(',').pop()
, virgülle ayrılmış dizgideki son öğe için çalışır. Sadece Guffa'nın müthiş cevabı tarafından yanlış yönlendirildiğimi söylüyorum, sadece göz ardı ettim çünkü bir regex'e ihtiyaç duymadım ve hile olduğunu düşündüm! : P
Dizinizi tersine çevirmeyi ve ilk öğeyi almayı da düşünebilirsiniz. Bu şekilde uzunluğu bilmek zorunda kalmazsınız, ancak büyük dizilerde ters işlemin daha uzun sürebileceği gerçek bir fayda ve dezavantaj getirmez:
array1.split(",").reverse()[0]
Yine de kolaydır, ancak söz konusu orijinal diziyi de değiştirir. Bu bir sorun olabilir veya olmayabilir.
Referans: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
Muhtemelen bunu kullanmak isteyebilirsiniz:
array1.split(",").pop()
.pop()
Yöntem şimdiye kadar gördüğüm en iyi cevaptır. Bu yüzden yaratıldı!
Ve eğer bir dizi oluşturmak istemiyorsanız ...
var str = "how,are you doing, today?";
var res = str.replace(/(.*)([, ])([^, ]*$)/,"$3");
İngilizce dökümü:
/(anything)(any separator once)(anything that isn't a separator 0 or more times)/
Replace sadece tüm dizgiyi son ayırıcıdan sonraki şeylerle değiştir diyor.
Böylece bunun genel olarak nasıl uygulanabileceğini görebilirsiniz. Orijinal dizenin değiştirilmediğini unutmayın.
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 >>";
Dizi dizinine doğrudan erişebilirsiniz:
var csv = 'zero,one,two,three';
csv.split(',')[0]; //result: zero
csv.split(',')[3]; //result: three
pieces.pop()
son öğesini almak için de kullanabilirsiniz .