la chose la plus téméraire! le code suivant affiche 'llo' au lieu du 'wo' attendu. J'obtiens des résultats aussi surprenants pour quelques autres chiffres. Qu'est-ce que j'oublie ici?
alert('helloworld'.substring(5, 2));
Vous confondez substring()
et substr()
: substring()
s'attend à deux index et non à offset et à length. Dans votre cas, les index sont 5 et 2, c'est-à-dire que les caractères 2..4 seront renvoyés car l'index le plus élevé est exclu.
Vous avez trois options en 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'
Vérifiez la substring
syntax :
sous-chaîne (de, à)
de Obligatoire. L'index où commencer l'extraction. Premier caractère est à l'index 0
à Facultatif. L'index où arrêter l'extraction. Si omis, il extrait le reste de la chaîne
Je vous l'accorde, c'est un peu bizarre. Je ne le savais pas moi-même.
Ce que tu veux faire c'est
alert('helloworld'.substring(5, 7));
Voir la syntaxe ci-dessous:
str.substring(indexA, [indexB])
Si indexA > indexB
, la fonction substring()
agit comme si les arguments étaient inversés.
Considérons la documentation ici: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
alert('helloworld'.substring(5, 2));
Le code ci-dessus est incorrect car la première valeur est le point de départ jusqu'au point final. Par exemple, déplacez-vous du caractère 5 qui est o
et passez au caractère 2 qui est la l
afin d'obtenir llo
Donc vous lui avez dit de revenir en arrière.
Ce que tu veux c'est
alert('helloworld'.substring(5, 7));
C'est ce que j'ai fait,
var stringValue = 'Welcome to India';
// if you want take get 'India'
// stringValue.substring(startIndex, EndIndex)
stringValue.substring(11, 16); // O/p 'India'