2010-10-07 41 views

Respuesta

43
str.charAt(str.length - 1) 

Algunos navegadores permiten (como una extensión no estándar) a acortar esto:

str[str.length - 1]; 
7

Puede obtener el último carácter de esta manera:

var lastChar=yourString.charAt(yourString.length-1); 
75

Uso charAt:

El método charAt() devuelve el carácter acter en el índice especificado en una cadena.

Puede utilizar este método junto con la propiedad length de una cadena para obtener el último carácter de esa cadena.
Por ejemplo:

var myString = "linto.yahoo.com."; 
var stringLength = myString.length; // this will be 16 
var lastChar = myString.charAt(stringLength - 1); // this will be the string "." 
+12

y los más rápidos http://jsperf.com/splice-1-vs-charat-lenght-1-vs-index – Joaolvcm

3

Utilice la función de JavaScript charAt para obtener un carácter a la posición 0-ajustadas dado. Use length para averiguar cuánto tiempo dura la cadena. Desea que el último carácter por lo que es la longitud - 1. Ejemplo:

var word = "linto.yahoo.com."; 
var last = word.charAt(word.length - 1); 
alert('The last character is:' + last); 
747

Una alternativa elegante y corto, es el método String.prototype.slice.

Justo por:

str.slice(-1); 

un negativo rebanadas índice inicial de length+index, a length, siendo el índice -1, se extrae el último carácter de la cadena:

"abc".slice(-1); // "c"; 
+5

Nota al margen: matrices también tienen un [ 'rebanada() '] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice) método. - Su funcionalidad es conceptualmente similar (copias parciales) -------- (En caso de que esté leyendo código y vea '.slice()') –

+0

¿Funciona esto también en cadenas UTF-8? –

+1

¿Qué quiere decir con una "cadena UTF-8"? La frase no tiene sentido. Sin embargo, FWIW, las cadenas de JavaScript son bestias divertidas: son secuencias de valores enteros de 16 bits sin signo. Si la intención de su cadena es almacenar caracteres, el código anterior arroja el último valor de 16 bits, lo que no sería bueno si fuera la segunda parte de un par suplente. Pero, de nuevo, ¿qué quiere decir exactamente con "cuerda UTF-8"? UTF-8 es un esquema de codificación que puede tener sentido si tiene una matriz de bytes, pero no significa nada cuando se trata de cadenas. Sólo curioso. –

32

Uso substr con el parámetro - 1:

"linto.yahoo.com.". Substr (-1);

es igual a "."

Nota:

Para extraer caracteres desde el final de la cadena, utilice un número de salida negativo (Esto no funciona en IE 8 y anteriores).

+2

Parece que este es tan corto como slice(), me pregunto cuál es mejor y más rápido. – stramin

4
var firstName = "Ada"; 
var lastLetterOfFirstName = firstName[firstName.length - 1]; 
+0

Si bien este fragmento de código puede resolver la pregunta, [incluye una explicación] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. Por favor, intente no saturar su código con comentarios explicativos, ¡esto reduce la legibilidad tanto del código como de las explicaciones! – kayess

18

Esto se puede conseguir utilizando diferentes maneras pero con diferente rendimiento,

1.Utilizando la notación de soporte:

var str = "Test"; var lastLetter = str[str.length - 1];

pero se recomienda no utilizar paréntesis. Compruebe las razones Here

2. charAt [index]:

var lastLetter = str.charAt(str.length - 1)

Esto es fácil de leer y más rápido entre otros. Es la forma más recomendada.

3. subcadena:

`str.substring(str.length - 1);` 

4. rebanada:

str.slice(-1);

Es un poco más rápido que la subcadena.

Puede comprobar el rendimiento Here

Cuestiones relacionadas