HOWTO · JavaScript

Eliminar un carácter de una cadena en JavaScript

Demuestra diferentes maneras de eliminar un carácter de una cadena en JavaScript

En esta página

Las cadenas de JavaScript son inmutables: al eliminar un carácter se crea y devuelve una cadena nueva, y el valor original permanece intacto. Elige la operación según cómo identifiques el carácter: usa una expresión regular global para eliminar todas las coincidencias, slice() para eliminar un carácter en una posición concreta o replace() con una cadena para eliminar solo la primera coincidencia. Los ejemplos usan DelftStack, donde la letra t aparece dos veces, para que se aprecie la diferencia entre las opciones.

Eliminar todos los caracteres coincidentes con una expresión regular global

Pasa una expresión regular con la bandera g a replace() cuando quieras eliminar todas las apariciones. Sin g, una expresión regular reemplaza solo la primera coincidencia. La cadena de reemplazo '' no aporta ningún carácter, y el resultado se asigna a una variable nueva porque replace() no modifica la cadena original.

Para eliminar todas las t, ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

const original = "DelftStack";
const result = original.replace(/t/g, "");
console.log(result);
DelfSack

Este patrón literal es adecuado cuando conoces el carácter de antemano. Si construyes el patrón a partir de texto proporcionado por el usuario, escapa los metacaracteres de las expresiones regulares antes de crear la RegExp; de lo contrario, caracteres como . o * actuarán como operadores en lugar de coincidir literalmente. Para un carácter fijo, también puedes expresar la coincidencia con una clase de caracteres de expresión regular, pero escapa los caracteres que tengan un significado especial dentro de esa clase.

Eliminar un carácter en un índice conocido con slice()

Los índices de las cadenas de JavaScript empiezan en cero. En DelftStack, la t está en el índice 4, así que toma la parte anterior a ese índice y únela con la parte posterior al carácter. slice() devuelve cada parte sin cambiar la cadena de origen. Según el inventario proporcionado, este destino de la API solo está disponible en inglés; no hay un destino en español confirmado. Esta eliminación es posicional: en un índice válido, elimina el carácter que ocupa esa posición, coincida o no con el que buscabas. Comprueba primero text[index] si la coincidencia es importante.

Para eliminar el carácter del índice 4, ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

const original = "DelftStack";
const index = 4;
const result = original.slice(0, index) + original.slice(index + 1);
console.log(result);
DelfStack

Si vas a reutilizar la función, comprueba que el índice sea un entero entre 0 y text.length - 1 antes de unir los segmentos. Con esta expresión, un índice igual o superior a la longitud de la cadena la deja sin cambios. Un índice negativo tiene un comportamiento distinto con slice() y puede eliminar texto desde el final; valídalo en lugar de tratar cualquier valor fuera de rango como si no hiciera nada. La indexación de cadenas de JavaScript opera sobre unidades de código UTF-16; un símbolo visible representado por un par sustituto puede ocupar dos índices.

Eliminar solo el primer carácter coincidente con replace()

Cuando el valor de búsqueda es una cadena, replace() elimina solo la primera coincidencia. Es la opción más breve cuando quieres eliminar la primera aparición. Compara el resultado con el ejemplo de expresión regular global: desaparece la primera t y permanece la siguiente. Usa una expresión regular con g cuando quieras eliminar todas las coincidencias.

Para eliminar solo la primera t, ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

const original = "DelftStack";
const result = original.replace("t", "");
console.log(result);
DelfStack

Estos métodos devuelven cadenas, así que puedes guardar el resultado, pasarlo a otra función o asignarlo de nuevo a una variable declarada con let. No modifican una cadena almacenada en una vinculación const: const impide reasignar la variable, mientras que el valor de cadena en sí es inmutable. Para realizar varias transformaciones, elige el método cuya regla de coincidencia resulte más clara y usa el valor devuelto como entrada de la siguiente operación. Los métodos basados en búsquedas, como replace(), dejan el texto sin cambios cuando el valor buscado no aparece; la eliminación por índice sigue la posición y elimina el carácter que hay allí si el índice es válido.