2010-12-08 15 views

Respuesta

24

El String .slice() method le permite utilizar un índice negativo:

var str = "319CDXB".slice(-3); // DXB 

EDIT: para exponer un poco, el método .slice() para la cadena es un método que se comporta muy parecido a su Array counterpart.

El primer parámetro representa el índice inicial, mientras que el segundo es el índice que representa el punto de parada.

Cualquiera de los dos parámetros permite emplear un índice negativo, siempre que el rango tenga sentido. Omitir el segundo parámetro implica el final de la cadena.

Ejemplo:http://jsfiddle.net/patrick_dw/N4Z93/

var str = "abcdefg"; 

str.slice(0);  // "abcdefg" 
str.slice(2);  // "cdefg" 
str.slice(2,-2);  // "cde" 
str.slice(-2);  // "fg" 
str.slice(-5,-2); // "cde" 

La otra cosa buena de .slice() es que está ampliamente disponible en todos los principales navegadores. Estas dos razones lo hacen (en mi opinión) la opción más atractiva para obtener una sección de un String.

+1

Los índices negativos no son compatibles con IE –

+3

@ Šime Vidas - Sí lo son. Estoy usando '.slice()' not '.substr()'. Y, por cierto, * Grrrr ... * por hacer que inicie IE en VMWare para verificarlo. ; o) – user113716

+0

Lo siento. Creo que inconscientemente concluí que a IE no le gustan los índices negativos en absoluto. –

4

Usted puede hacer esto con JavaScript normal:

var str = "319CDXB"; 
var lastThree = str.substr(str.length - 3); 

Si usted está recibiendo desde jQuery a través .val (), solo usa eso como tu str en el código anterior.

1
var str = "319CDXB"; 
str.substr(str.length - 3); // "DXB" 
2

simple:

str = "319CDXB" 
last_three = str.substr(-3) 
+2

Esto no se admite en IE http://msdn.microsoft.com/en-us/library/0esxc5wy.aspx –

+0

De acuerdo con http://www.w3schools.com/jsref/jsref_substr.asp es, pero Estoy en un Mac, así que no puedo probarlo. –

+1

Según esa página, no lo es. Lo dice allí mismo (en Consejos y notas) –

Cuestiones relacionadas