2017-07-25 9 views
4

Ich bin neu in JS, ich habe den Code unten versucht,Gibt das falsche Zeichen in SubString Methode

var str = "\">2\"" 
var res = str.substring(2,1); 

Return:>

Erwartet:2

Ich habe überprüfte dies durch den folgenden Code,

var str = "\">2\"" 
var res = str.substring(2); 

Return:"2\"

Erwartet:"2\"

Bitte lassen Sie mich wissen, wenn ich etwas falsch verstehen, warum es > kehrt statt 2. In C# funktioniert es korrekt.

Vielen Dank im Voraus

Antwort

6

Eigentlich tun Sie es falsch in Fall 1

Wenn Sie

str.substring(2,1); 

tun, das heißt, eigentlich

str.substring(1,2); 

Von docs

Wenn indexStart größer als indexEnd ist, ist der Effekt von substring() so, als ob die beiden Argumente vertauscht wären; zum Beispiel strstring (1, 0) == strstring (0, 1).

Da das Zeichen bei 1,2 ist >, bekommen Sie das gleiche.

aber wenn Sie das tun

str.substring(2); 

Es entspricht eigentlich

str.substring(2, str.length-1); 

Wenn indexEnd weggelassen wird, substring() extrahiert Zeichen bis zum Ende des Strings.

+1

Alternativ kann 'substr' verwendet werden. – Andy

0

JavaScript-Teilzeichenfunktion funktioniert wie diese

String.substring (Anfang, Ende)

var str = "\">2\"" 
var res = str.substring(2,1); 

in diesem Fall Wenn "Start" größer als "Ende", wird es die beiden Argumente tauschen:

so beantworten > nur

und im zweiten Fall

var str = "\">2\"" 
var res = str.substring(2); 

Beginnen Sie die Extraktion an Position 2 und extrahieren den Rest der Zeichenfolge:

so antworten 2"

diesen Link gelangen Sie für mehr imformation javascript substring function

0

Teilzeichenfolge helfen (2,1) gibt Ihnen nur das Zeichen nur an der 2. Position, Wobei als Teilstring (2) String von der 2. Position bis zum Ende des Strings zurückgibt.

Verwandte Themen