JavaScript substr() y substring():¿cuál es la diferencia?

JavaScript tiene dos métodos similares para extraer subcadenas de cadenas:substr()subcadena() . Este artículo explica la diferencia.

Estas dos funciones realizan casi la misma función y tienen casi el mismo nombre y, de un vistazo, incluso parecen tener la misma sintaxis, ¡pero son diferentes!

Esta es la sintaxis de cada función, una al lado de la otra para que pueda ver la diferencia.

Un recordatorio rápido sobre índices

Un índice es el número entero que representa la posición de un artículo en una serie. Índices empezar a contar desde 0, por lo que el primer índice es el índice 0 , el segundo es el índice 1 , y así sucesivamente.

Como las cadenas son una serie de caracteres, la posición de cada carácter se puede describir mediante su índice .

Por ejemplo, tome la cadena:

abcdefg

La letra a está en el índice 0, y la letra c está en el índice 2 .

JavaScript substr() Sintaxis

La sintaxis de Javascript substr() método es el siguiente:

string.substr(START, LENGTH)

Tenga en cuenta que:

  • substr() devolverá una parte de una cadena dada , comenzando en el índice START a la LONGITUD especificada
  • COMENZAR es el índice del personaje en el que deseas comenzar
  • LONGITUD es el número máximo de caracteres desea incluir
    • Si no se especifica, se devolverá el resto de la cadena que comienza en START
    • Si es mayor que el número restante de caracteres en la cadena, se devolverá el resto de la cadena que comienza en START

substr() Ejemplo

var myString = "Ahoy!"; // Define a string
var mySubstring = myString.substr(1, 4); // Returns "hoy!"

JavaScript subcadena() Sintaxis

La sintaxis de substring() método es el siguiente:

string.substring(START, END)

Tenga en cuenta que:

  • subcadena() devolverá una parte de una cadena dada , comenzando en el índice START y terminando en el índice END
  • COMENZAR es el índice del personaje en el que deseas comenzar
  • FIN es el índice del personaje en el que desea terminar
    • Es opcional:si no se especifica, se devolverá el resto de la cadena
    • Tampoco no está incluido en la subcadena resultante:todo hasta FIN solo se incluye

subcadena() Ejemplo

var myString = "Ahoy!"; // Define a string
var mySubstring = myString.substring(1, 4); // Returns "hoy"

Observe que substring() ha devuelto un resultado diferente a substr(), ya que utiliza el índice para calcular la posición final en lugar del número máximo de caracteres.

La diferencia (es el segundo parámetro)

Como se muestra arriba, la diferencia es el segundo parámetro. subcadena() acepta el índice para detenerse, mientras que substr() acepta el número máximo de caracteres para volver.

JavaScript split() La función también se puede usar para crear subcadenas a partir de cadenas.