¿Cómo eliminar parte de una cadena antes de un ":" en javascript?

111

Si tengo una cadena Abc: Lorem ipsum sit amet, ¿cómo puedo usar JavaScript / jQuery para eliminar la cadena antes de :incluir el :. Por ejemplo, la cadena anterior se convertirá en: Lorem ipsum sit amet.

Víctor
fuente
2
Agregué la etiqueta javascript porque está en la pregunta y es más relevante para la pregunta que jquery.
Spudley

Respuestas:

290

No hay necesidad de jQuery aquí, JavaScript normal servirá:

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

O bien, la versión .split()y .pop():

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

O, la versión regex (varias variantes de esto):

var str = "Abc: Lorem ipsum sit amet";
str = /:(.+)/.exec(str)[1];
Nick Craver
fuente
1
Gran respuesta, me encantan las diferentes soluciones
Aardvark
22
Tenga en cuenta que si hay más de uno :en la cadena, la segunda variante devolverá la cadena que sigue a la última en lugar de la primera como en las demás. Es lamentable que no exista la opción de dividir solo n veces en el split()método de JS , lo que le permitiría hacer un estilo Python .split(':', 1)[1]. (No es un opcional numberargumento, pero no hace lo que se puede esperar cualquier persona razonable.)
bobince
@bobince - Tienes razón, estoy asumiendo un poco aquí que tiene un label: somethingformato consistente , si ese no es el caso, elegiría la primera opción.
Nick Craver
2
Puede dividir y unir para eliminar algunos elementos según el separador. "Abc:Lorem_ipsum_sit_amet".split(':').slice(1).join('.');
Amritesh Anand