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));
Antworten:
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.
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'
Ü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));
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 o
und geht 2 verkohlen , das das ist l
so erhalten , llo
damit Sie ihm gesagt haben , rückwärts zu gehen.
Was du willst ist
alert('helloworld'.substring(5, 7));
Siehe Syntax unten:
str.substring(indexA, [indexB])
Wenn indexA > indexB
, substring()
funktioniert die Funktion so, als ob Argumente umgekehrt würden.
Beachten Sie die Dokumentation hier: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
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'