Javascript-Teilzeichenfolge

73

das Darndeste! Der folgende Code gibt 'llo' anstelle des erwarteten 'wo' aus. Ich bekomme so überraschende Ergebnisse für ein paar andere Zahlen. Was vermisse ich hier?

alert('helloworld'.substring(5, 2));
akula1001
quelle

Antworten:

103

Sie sind verwirrend substring()und substr(): substring()erwartet zwei Indizes und nicht Offset und Länge. In Ihrem Fall sind die Indizes 5 und 2, dh die Zeichen 2..4 werden zurückgegeben, da der höhere Index ausgeschlossen ist.

Christoph
quelle
Die zweite Antwort ist besser; es hat Beispiele
Nathan
54

Sie haben drei Möglichkeiten in Javascript:

//slice
//syntax: string.slice(start [, stop])
"Good news, everyone!".slice(5,9); // extracts 'news'

//substring 
//syntax: string.substring(start [, stop])
"Good news, everyone!".substring(5,9); // extracts 'news'

//substr
//syntax: string.substr(start [, length])
"Good news, everyone!".substr(5,4); // extracts 'news'
Chirag
quelle
16

Überprüfen Sie die substring Syntax :

Teilzeichenfolge (von, bis)

von Erforderlich. Der Index, in dem die Extraktion gestartet werden soll. Das erste Zeichen befindet sich am Index 0

zu Optional. Der Index, in dem die Extraktion gestoppt werden soll . Wenn nicht angegeben, wird der Rest der Zeichenfolge extrahiert

Ich gebe dir zu, es ist ein bisschen seltsam. Wusste das selbst nicht.

Was Sie tun möchten, ist

alert('helloworld'.substring(5, 7));
Pekka
quelle
2
alert('helloworld'.substring(5, 2));

Der obige Code ist falsch , weil der erste Wert der Startpunkt bis zum Ende point.Eg Umzug von char ist 5 , das ist ound geht 2 verkohlen , das das ist lso erhalten , llodamit Sie ihm gesagt haben , rückwärts zu gehen.

Was du willst ist

alert('helloworld'.substring(5, 7));
AutomatedTester
quelle
0

Das habe ich getan ...

var stringValue = 'Welcome to India';

// if you want take get 'India' 
// stringValue.substring(startIndex, EndIndex)
   stringValue.substring(11, 16); // O/p 'India'
Nayas Subramanian
quelle