¿Cómo obtener el primer carácter de cadena?


595

Tengo una cadena y necesito obtener su primer carácter.

var x = 'somestring';
alert(x[0]); //in ie7 returns undefined

¿Cómo puedo arreglar mi código?


55
solo ten cuidado, ¡es posible que no tengas un personaje para extraer!
corsiKa

Respuestas:


1046

Lo que queremos es charAt.

var x = 'some string';
alert(x.charAt(0)); // alerts 's'

11
Trabajó en IE7, Chrome, Firefox.
Yuriy Faktorovich

78
Solo quería dejar el documento de MDN aquí. Generalmente prefiero esto sobre w3schools.
danwit

12
x.charAt()también devolverá el primer carácter como si no se pasara ningún índice a este método, lo asumirá al 0.
Mohammad Usman

1
@MohammadUsman Si bien lo que usted dice es cierto, desafortunadamente charAt () sin ningún parámetro en realidad se ejecuta aproximadamente 10 veces más lento que chartAt (0) en Firefox a partir de Firefox 71. Véalo
Stephen M Irving

Esta solución es buena para ASCII, pero se romperá de todo tipo tan pronto como lidie con más que eso. "👍".charAt(0)devuelve "\ud83d", "café".charAt(3)devuelve ey suelta el acento, etc. stackoverflow.com/questions/38345372/… tiene información y una buena alternativa (use una biblioteca)
Clément

149

En JavaScript puedes hacer esto:

const x = 'some string';
console.log(x.substring(0, 1));


55
si prefiere usar funcs de subcadenas, x.slice(0,1)es más corto. Y para obtener el último personaje simplemente use:x.slice(-1)
S.Serpooshan

60

Puedes usar cualquiera de estos.

Hay una pequeña diferencia entre todos estos, así que tenga cuidado al usarlo en una declaración condicional.

var string = "hello world";
console.log(string.slice(0,1));     //o/p:- h
console.log(string.charAt(0));      //o/p:- h
console.log(string.substring(0,1)); //o/p:- h
console.log(string.substr(0,1));    //o/p:- h
console.log(string[0]);             //o/p:- h


var string = "";
console.log(string.slice(0,1));     //o/p:- (an empty string)
console.log(string.charAt(0));      //o/p:- (an empty string)
console.log(string.substring(0,1)); //o/p:- (an empty string)
console.log(string.substr(0,1));    //o/p:- (an empty string)
console.log(string[0]);             //o/p:- undefined

3
falta string.substr (0,1); :)
Luckylooke


18

Ejemplo de todo método

Primero :string.charAt(index)

Devuelve la caractra en el indice index

var str = "Stack overflow";

console.log(str.charAt(0));

Segundo :string.substring(start,length);

Devuelve la subcadena en la cadena que comienza en el índice starty se detiene después de la longitudlength

Aquí solo quieres la primera caract así: start = 0ylength = 1

var str = "Stack overflow";

console.log(str.substring(0,1));

Alternativa :string[index]

Una cadena es una matriz de caract. Entonces puede obtener la primera caract como la primera celda de una matriz.

Devuelve la caractra en el índice indexde la cadena

var str = "Stack overflow";

console.log(str[0]);


La sincronización de una sola operación con console.time () no es una prueba de rendimiento razonable o precisa. Por supuesto, no hay una gran diferencia entre ellos cuando solo cronometras una operación. Estos métodos realmente funcionan de manera diferente.
Stephen M Irving

17
var x = "somestring"
alert(x.charAt(0));

El método charAt () le permite especificar la posición del personaje que desea.

Lo que estaba intentando hacer es colocar el carácter en la posición de una matriz "x", que no está definida como X no es una matriz.


15

Incluso puede usar slicepara cortar todos los demás caracteres:

x.slice(0, 1);

Este método será uno de los métodos menos efectivos para resolver esto. Subóptimo.
Stephen M Irving

7
var str="stack overflow";

firstChar  = str.charAt(0);

secondChar = str.charAt(1);

Probado en IE6 + , FF , Chrome , safari .


12
por curiosidad, ¿hay alguna razón por la que publicaste esta respuesta? Parece ser un duplicado de la respuesta aceptada.
Manatherin el

55
Sí dieron información adicional (incluso si debería haber sido un comentario) ... como en qué navegadores se probó. Sé indexOfque no funciona en IE8 y eso es bastante importante para mí. De hecho, comencé a buscar compatibilidad con charAt de Google hasta que vi esta respuesta aquí abajo.
gloomy.penguin


2

x.substring(0,1)

Detalles

substring(start, end) extrae los caracteres de una cadena, entre los 2 índices "inicio" y "fin", sin incluir el "fin" en sí.

Notas especiales

  • Si "inicio" es mayor que "fin", este método intercambiará los dos argumentos, lo que significa str.substring (1, 4) == str.substring (4, 1).
  • Si "inicio" o "fin" es menor que 0, se trata como si fuera 0.

2

Parece que llego tarde a la fiesta, pero prueba la siguiente solución, que personalmente encontré la mejor solución:

var x = "testing sub string"
alert(x[0]);
alert(x[1]);

La salida debe mostrar una alerta con los siguientes valores: "t" "e"


0

en JQuery puede usar: en clase para Seleccionar opción:

$('.className').each(function(){
    className.push($("option:selected",this).val().substr(1));
});

en clase para texto Valor:

$('.className').each(function(){
    className.push($(this).val().substr(1));
});

en ID para texto Valor:

$("#id").val().substr(1)

0

en Nodejs puedes usar Buffer:

let str = "hello world"
let buffer = Buffer.alloc(2, str) // replace 2 by 1 for the first char
console.log(buffer.toString('utf-8')) // display he
console.log(buffer.toString('utf-8').length) // display 2

0
var string  = "Hello World";
console.log(charAt(0));

El charAt (0) es un método de JavaScript, devolverá el valor basado en el índice, aquí 0 es el índice de la primera letra.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.