una ultimo last eliminar ejemplo cortar caracteres caracter cadena javascript substring

javascript - ultimo - ¿Cuál es la diferencia entre substr y substring?



substring javascript ejemplo (8)

Como se insinuó en la respuesta de yatima2975, hay una diferencia adicional:

substr() acepta una posición de inicio negativa como un desplazamiento desde el final de la cadena. substring() no lo hace.

Desde developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… :

Si inicio es negativo, substr () lo usa como un índice de caracteres desde el final de la cadena.

Así que para resumir las diferencias funcionales:

substring(begin-offset, end-offset-exclusive) donde begin-offset es 0 o mayor

substr(begin-offset, length) donde begin-offset también puede ser negativo

Cuál es la diferencia entre

alert("abc".substr(0,2));

y

alert("abc".substring(0,2));

Ambos parecen salir "ab".


La diferencia es el segundo parámetro. Sus segundos parámetros, mientras que ambos números, esperan dos cosas diferentes:

Cuando se utiliza subcadena, el segundo parámetro es el primer índice que no incluye:

var s = "string"; s.substring(1, 3); // would return ''tr'' var s = "another example"; s.substring(3, 7); // would return ''ther''

Cuando se utiliza substr, el segundo parámetro es el número de caracteres que se incluirán en la subcadena:

var s = "string"; s.substr(1, 3); // would return ''tri'' var s = "another example"; s.substr(3, 7); // would return ''ther ex''



La gran diferencia es que substr() es un método en desuso que aún se puede usar, pero se debe usar con precaución porque se espera que se eliminen por completo en algún momento en el futuro. Debe trabajar para eliminar su uso de su código. Y el método MDN tuvo éxito y especificó el anterior.


La principal diferencia es que

substr () le permite especificar la longitud máxima para devolver

subcadena () le permite especificar los índices y el segundo argumento NO es inclusivo

Hay algunas sutilezas adicionales entre substr () y substring () como el manejo de argumentos iguales y argumentos negativos. También tenga en cuenta que substring () y slice () son similares pero no siempre iguales.

//*** length vs indices: "string".substring(2,4); // "ri" (start, end) indices / second value is NOT inclusive "string".substr(2,4); // "ring" (start, length) length is the maximum length to return "string".slice(2,4); // "ri" (start, end) indices / second value is NOT inclusive //*** watch out for substring swap: "string".substring(3,2); // "r" (swaps the larger and the smaller number) "string".substr(3,2); // "in" "string".slice(3,2); // "" (just returns "") //*** negative second argument: "string".substring(2,-4); // "st" (converts negative numbers to 0, then swaps first and second position) "string".substr(2,-4); // "" "string".slice(2,-4); // "" //*** negative first argument: "string".substring(-3); // "string" "string".substr(-3); // "ing" (read from end of string) "string".slice(-3); // "ing"


Otro problema que encontré recientemente es que en IE 8, "abcd".substr(-1) devuelve erróneamente "abcd" , mientras que Firefox 3.6 devuelve "d" como debería. slice funciona correctamente en ambos.

Más sobre este tema se puede encontrar rapd.wordpress.com/2007/07/12/javascript-substr-vs-substring .



substr ( developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… ) toma parámetros como (from, length) .
substring ( MDN ) toma parámetros como (from, to) .

alert("abc".substr(1,2)); // returns "bc" alert("abc".substring(1,2)); // returns "b"

Puede recordar que la substring toma índices, al igual que otro método de extracción de cadena, slice .

Al comenzar desde 0 puedes usar cualquiera de los dos métodos.