Nota: si tiene prisa y / o busca una respuesta corta, desplácese hasta el final de la respuesta y lea las dos últimas líneas. Si no tiene prisa, lea todo.
permítanme comenzar declarando los hechos:
Sintaxis:
string.slice(start,end)
string.substr(start,length)
string.substring(start,end)
Nota # 1:slice()==substring()
¿Que hace?
El slice()
método extrae partes de una cadena y devuelve las partes extraídas en una nueva cadena.
El substr()
método extrae partes de una cadena, comenzando en el carácter en la posición especificada, y devuelve el número especificado de caracteres.
El substring()
método extrae partes de una cadena y devuelve las partes extraídas en una nueva cadena.
Nota 2:slice()==substring()
Cambia la cadena original?
slice()
No
substr()
hace No
substring()
hace No
Nota # 3:slice()==substring()
Uso de números negativos como argumento:
slice()
selecciona caracteres que comienzan desde el final de la cadena
substr()
selecciona caracteres que comienzan desde el final de la cadena
substring()
No realiza la
nota # 3:slice()==substr()
si el primer argumento es mayor que el segundo:
slice()
no se realiza
substr()
ya que el segundo argumento NO es una posición, sino un valor de longitud, funcionará como de costumbre, sin problemas
substring()
intercambiará los dos argumentos y funcionará como de costumbre
el primer argumento:
slice()
obligatorio, indica: índice inicial
substr()
obligatorio, indica: índice inicial
substring()
obligatorio, indica: índice inicial
Nota # 4:slice()==substr()==substring()
El segundo argumento:
slice()
Opcional, La posición (hasta, pero sin incluir) dónde finalizar la extracción
substr()
Opcional, El número de caracteres para extraer
substring()
Opcional, La posición (hasta, pero sin incluir) donde finalizar la extracción
Nota # 5:slice()==substring()
¿Qué pasa si se omite el segundo argumento?
slice()
selecciona todos los caracteres desde la posición inicial hasta el final de la secuencia
substr()
selecciona todos los caracteres desde la posición inicial hasta el final de la secuencia
substring()
selecciona todos los caracteres desde la posición inicial hasta el final de la secuencia
Nota # 6:slice()==substr()==substring()
entonces, puedes decir que hay una diferencia entre slice()
y substr()
, mientras que substring()
es básicamente una copia de slice()
.
en resumen:
si conoce el índice (la posición) en el que se detendrá (pero NO lo incluirá), use slice()
si conoce la longitud de los caracteres que se extraerán substr()
.
slice
es el que tiene el comportamiento menos inesperado.