Descripción
Algunas veces necesitamos cortar un elemento de nuestras cadenas de texto, para esto Javascript nos concede métodos para conseguirlo y hablamos precisamente de Slice, Substring y Substr, cuyas diferencias te describiré a continuación.
Slice
El método slice() nos permite cortar cadenas de texto indicándole un inicio y un fin, ademas acepta valores negativos en sus parámetros.
const texto = "Esto es un texto de prueba"
let recortado
//con slice debes indicar parámetros de inicio y fin
recortado = texto.slice(0,7) // > "Esto es"
//el parámetro de inicio debe ser menor que el de fin o no retornará nada
recortado = texto.slice(4,2) // > ""
//acepta valores negativos, los cuales se cuentan en retroceso
recortado = texto.slice(5,-2) // > "es un texto de prue"
//puedes colocar un parámetro de inicio sin especificar el de fin
recortado = texto.slice(5) // > "es un texto de prueba"
recortado = texto.slice(-5) // > "rueba"
Substring
También debes especificar en parámetro de inicio y fin, pero a diferencia de slice convierte los valores negativos en cero. Ademas acepta que el parámetro de inicio sea mayor que el de fin y luego los invierte.
const texto = "Esto es un texto de prueba"
let recortado
//con substring debes indicar parámetros de inicio y fin
recortado = texto.substring(0,7) // > "Esto es"
//si el parámetro de inicio es mayor que el de fin, invertirá los valores automáticamente
recortado = texto.substring(4,2) // > "to"
//valores negativos los interpreta como cero "0"
recortado = texto.substring(5,-2) // > "Esto"
//puedes colocar un parámetro de inicio sin especificar el de fin
recortado = texto.substring(5) // > "es un texto de prueba"
Substr
Es el mas distinto de los tres métodos debido a que sus parámetros son de inicio y longitud de la cadena de texto. Es importante saber que debido a la alta redundancia con slice y substring, substr aparece como «eliminado de los estándares web» y próximamente obsoleto.
const texto = "Esto es un texto de prueba"
let recortado
//En substr debes indicar parámetros de inicio y longitud
recortado = texto.substr(0,7) // > "Esto es"
recortado = texto.substr(5,4) // > "es u"
//valores de longitud negativos los interpreta como cero "0"
recortado = texto.substr(5,-4) // > ""
//valores de inicio negativos los leerá en retroceso
recortado = texto.substr(-6,5) // > "prueb"
//puedes colocar un parámetro de inicio sin especificar el de fin
recortado = texto.substr(5) // > "es un texto de prueba"
recortado = texto.substr(-5) // > "rueba"
Conclusión
El uso de cada uno dependerá de nuestras necesidades, siendo Slice el mas comúnmente usado para recortar cadenas de texto, seguido de Substring como alternativa mas próxima.
- Slice te permite utilizar valores negativos para cortar textos en retroceso.
- Substring te deja usar los parámetros de inicio y fin en cualquier posicion substring(inicio, fin) o substring(fin, inicio)
- Substr usa un parámetro de longitud del texto en lugar del de fin.
Espero que esta publicación haya sido de utilidad para ti, compártelo con alguien que lo necesite. y recuerda que puedes encontrar más trucos y snippets como este en: https://pixonauta.com/snippets/
Enlaces de referencia: