Come ottenere il primo carattere di stringa?


595

Ho una stringa e devo ottenere il suo primo carattere.

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

Come posso riparare il mio codice?


5
stai solo attento: potresti non avere un personaggio da estrarre!
corsiKa

Risposte:


1046

Quello che vuoi è charAt.

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

11
Ha funzionato su IE7, Chrome, Firefox.
Yuriy Faktorovich,

78
Volevo solo lasciare qui il documento MDN . In genere preferisco questo a w3schools.
danwit

12
x.charAt()restituirà anche il primo carattere come se nessun indice è passato a questo metodo, lo assumerà al 0.
Mohammad Usman,

1
@MohammadUsman Mentre quello che dici è vero, purtroppo charAt () senza parametri in realtà funziona circa 10 volte più lento di chartAt (0) in Firefox a partire da Firefox 71. Vedi qui: jsperf.com/testing-the-first-character- in-a-string / 1
Stephen M Irving il

Questa soluzione è utile per ASCII, ma si romperà in tutti i modi non appena ne avrai a che fare di più. "👍".charAt(0)restituisce "\ud83d", "café".charAt(3)restituisce ee abbassa l'accento, ecc. stackoverflow.com/questions/38345372/… ha alcune informazioni e una buona alternativa (utilizzare una libreria)
Clément

149

In JavaScript puoi farlo:

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


5
se preferisce usare funzioni sotto stringa, x.slice(0,1)è più breve. E per ottenere l'ultimo carattere utilizzare semplicemente:x.slice(-1)
S. Serpooshan il

60

Puoi usare uno di questi.

C'è una piccola differenza tra tutti questi quindi fai attenzione mentre lo usi in una dichiarazione condizionale.

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
string.substr mancante (0,1); :)
Luckylooke


18

Esempio di tutto il metodo

Primo :string.charAt(index)

Restituisce il caratto all'indice index

var str = "Stack overflow";

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

Secondo :string.substring(start,length);

Restituisce la sottostringa nella stringa che inizia dall'indice starte termina dopo la lunghezzalength

Qui vuoi solo il primo carattere così: start = 0elength = 1

var str = "Stack overflow";

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

Alternativa :string[index]

Una stringa è una matrice di carati. Quindi puoi ottenere il primo caratto come la prima cella di un array.

Restituisce il carattere in corrispondenza dell'indice indexdella stringa

var str = "Stack overflow";

console.log(str[0]);


Il cronometraggio di una singola operazione utilizzando console.time () non è un test delle prestazioni ragionevole o accurato. Di CORSO non c'è grande differenza tra loro quando si cronometra solo una singola operazione. Questi metodi funzionano effettivamente in modo diverso.
Stephen M Irving,

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

Il metodo charAt () consente di specificare la posizione del carattere desiderato.

Quello che stavi cercando di fare è ottenere il personaggio nella posizione di un array "x", che non è definito come X non è un array.


15

Puoi anche usare sliceper tagliare tutti gli altri personaggi:

x.slice(0, 1);

Questo metodo sarà uno dei metodi meno efficienti per risolverlo. Sub-ottimale.
Stephen M Irving,

7
var str="stack overflow";

firstChar  = str.charAt(0);

secondChar = str.charAt(1);

Testato in IE6 + , FF , Chrome , safari .


12
solo curioso, c'è un motivo per cui hai pubblicato questa risposta? Sembra essere un duplicato della risposta accettata.
Manatherin,

5
Hanno dato alcune informazioni extra (anche se avrebbe dovuto essere un commento) ... come i browser in cui è stato testato. So indexOfche non funziona in IE8 e questo è piuttosto importante per me. In realtà ho iniziato a compatibilità con Google fino a quando non ho visto questa risposta qui.
gloomy.penguin il


2

x.substring(0,1)

Dettagli

substring(start, end) estrae i caratteri da una stringa, tra i 2 indici "inizio" e "fine", senza includere "fine" stessa.

Note speciali

  • Se "start" è maggiore di "end", questo metodo sostituirà i due argomenti, ovvero str.substring (1, 4) == str.substring (4, 1).
  • Se "inizio" o "fine" è inferiore a 0, viene trattato come se fosse 0.

2

Sembra che sono in ritardo alla festa, ma prova la soluzione di seguito che ho trovato personalmente la soluzione migliore:

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

L'output dovrebbe mostrare un avviso con i seguenti valori: "t" "e"


0

in JQuery puoi usare: in classe per Seleziona Opzione:

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

in classe per il testo Valore:

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

in ID per il testo Valore:

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

0

in Nodejs puoi usare 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));

Il carattere (0) è il metodo JavaScript, restituirà un valore basato sull'indice, qui 0 è l'indice per la prima lettera.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.