Как удалить часть строки перед «:» в javascript?

111

Если у меня есть строка Abc: Lorem ipsum sit amet, как я могу использовать JavaScript / jQuery для удаления строки перед :включением :. Например, выше строка будет: Lorem ipsum sit amet.

Виктор
источник
2
Я добавил тег javascript, поскольку он находится в вопросе и более актуален для него, чем jquery.
Spudley 03

Ответы:

290

Здесь нет необходимости в jQuery, подойдет обычный JavaScript:

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

Или .split()и .pop()версия:

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

Или версия регулярного выражения (несколько вариантов этого):

var str = "Abc: Lorem ipsum sit amet";
str = /:(.+)/.exec(str)[1];
Ник Крейвер
источник
1
Отличный ответ, мне нравятся разные решения
Aardvark
22
Обратите внимание, если :в строке их несколько, второй вариант вернет строку, следующую за последней, а не первую, как в других. К сожалению, в split()методе JS нет опции «только n-кратное разбиение» , которая позволила бы вам работать в стиле Python .split(':', 1)[1]. (Там является необязательным numberаргументом, но он не делает то , что любой разумный человек будет ожидать.)
bobince
@bobince - Вы правы, я предполагаю, что у него согласованный label: somethingформат, если это не так, я бы выбрал первый вариант.
Ник Крейвер
2
Вы можете разделить и объединить, чтобы отбросить некоторые элементы на основе разделителя. "Abc:Lorem_ipsum_sit_amet".split(':').slice(1).join('.');
Амритеш Ананд