Jak usunąć część ciągu znaków przed „:” w javascript?


111

Jeśli mam ciąg Abc: Lorem ipsum sit amet, w jaki sposób mogę użyć JavaScript / jQuery, aby usunąć ciąg przed :dołączeniem :. Na przykład powyższy ciąg będzie: Lorem ipsum sit amet.


2
Dodałem tag javascript, ponieważ jest w pytaniu i jest bardziej istotny dla pytania niż jquery.
Spudley

Odpowiedzi:


290

Nie ma tu potrzeby stosowania jQuery, wystarczy zwykły JavaScript:

var str = "Abc: Lorem ipsum sit amet";
str = str.substring(str.indexOf(":") + 1);

Lub wersja .split()i .pop():

var str = "Abc: Lorem ipsum sit amet";
str = str.split(":").pop();

Lub wersja wyrażenia regularnego (kilka wariantów):

var str = "Abc: Lorem ipsum sit amet";
str = /:(.+)/.exec(str)[1];

1
Świetna odpowiedź, uwielbiam różne rozwiązania
Aardvark

22
Zauważ, że jeśli w ciągu jest więcej niż jeden :, drugi wariant zwróci ciąg następujący po ostatnim, a nie pierwszy, jak w pozostałych. Szkoda, że ​​w split()metodzie JS nie ma opcji split-only-n-times , która pozwalałaby na wykonanie w stylu Pythona .split(':', 1)[1]. (Nie jest opcjonalnym numberargumentem, ale nie robi tego, co każdy rozsądny człowiek spodziewałby.)
bobince

@bobince - Masz rację, trochę zakładam, że ma spójny label: somethingformat, jeśli tak nie jest, wybrałbym pierwszą opcję.
Nick Craver

2
Możesz podzielić i połączyć, aby upuścić niektóre elementy na podstawie separatora. "Abc:Lorem_ipsum_sit_amet".split(':').slice(1).join('.');
Amritesh Anand
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.