930 votes

Quelle est la différence entre substr et substring ?

Quelle est la différence entre

alert("abc".substr(0,2));

y

alert("abc".substring(0,2));

Ils semblent tous deux produire "ab".

16 votes

@Derek Note, substring surpasse tous les autres sur Chrome ces derniers temps.

4 votes

Pour compléter le commentaire de @Derek... Contrairement à la slice méthode, substring ne gère pas l'ajustement pour les paramètres négatifs.

2 votes

Je pense que la question la plus importante est "pourquoi JavaScript a à la fois une substr méthode et un substring méthode" ? C'est vraiment la méthode préférée de surcharge ?

9voto

CurnalCurz Points 91

La différence est le deuxième paramètre. Leurs seconds paramètres, bien qu'ils soient tous deux des nombres, attendent deux choses différentes :

Lors de l'utilisation de substring, le deuxième paramètre est le premier indice à ne pas inclure :

var s = "string";
s.substring(1, 3); // would return 'tr'

var s = "another example";
s.substring(3, 7); // would return 'ther'

Lorsque vous utilisez substr, le deuxième paramètre est le nombre de caractères à inclure dans la sous-chaîne :

var s = "string";
s.substr(1, 3); // would return 'tri'

var s = "another example";
s.substr(3, 7); // would return 'ther ex'

8voto

Servant Points 634

La grande différence est, substr() es une méthode obsolète qui peuvent encore être utilisés, mais avec prudence, car il est prévu qu'ils soient entièrement supprimés à l'avenir. Vous devez vous efforcer de supprimer leur utilisation de votre code. Et le substring() a réussi et a spécifié la première méthode.

2 votes

Pouvez-vous nous indiquer une source fiable qui indique la dépréciation de substr() ? Je l'ai lu dans la bouche de plusieurs personnes, mais je n'ai trouvé aucune information sur le web qui corrobore cette affirmation. De plus, Mozilla ne l'inclut pas dans la liste des fonctionnalités obsolètes : developer.mozilla.org/en-US/docs/Web/JavaScript/Référence/

0 votes

@DanielM Pour autant que je me souvienne, il était déprécié lorsque j'ai posté cette réponse, peut-être que l'article a changé et qu'il n'est plus déprécié. (mais pas sûr) .. Mais il est encore enregistré sur certains articles comme dans sstut.com/javascript/substring-method.php comme étant obsolète.

3 votes

@DanielM String.prototype.substr() est défini dans Annexe B de la norme ECMA-262, dont les introduction déclare : " Les programmeurs ne doivent pas utiliser ou supposer l'existen

6voto

raju poloju Points 99

substring() : Il comporte 2 paramètres "début" et "fin".

  • commencer Le paramètre est requis et spécifie la position de départ. l'extraction.
  • fin Le paramètre est facultatif et spécifie la position où l l'extraction doit se terminer.

Si le paramètre de fin n'est pas spécifié, tous les caractères depuis la position de départ jusqu'à la fin de la chaîne sont extraits.

var str = "Substring Example";
var result = str.substring(0, 10);
alert(result);

Output : Substring

Si la valeur du paramètre de début est supérieure à celle du paramètre de fin, cette méthode permute les deux arguments. Cela signifie que start sera utilisé comme end et end sera utilisé comme start.

var str = "Substring Example";
var result = str.substring(10, 0);
alert(result);

Output : Substring

substr() : Il possède 2 paramètres "start" et "count".

  • Le paramètre de départ est obligatoire et spécifie la position de départ. l'extraction.

  • Le paramètre count est facultatif et spécifie le nombre de caractères à utiliser. extraire.

    var str = "Substr Example"; var result = str.substr(0, 10); alert(result);

    Output : Substr Exa

Si le paramètre count n'est pas spécifié, tous les caractères depuis la position de départ jusqu'à la fin de la chaîne sont extraits. Si count est égal à 0 ou négatif, une chaîne vide est renvoyée.

var str = "Substr Example";
var result = str.substr(11);
alert(result);

Output : ple

4voto

Ali007 Points 127

Méthodes Slice vs Substr vs Substring vs [ ].

Chacune de ces méthodes javascript présente des avantages en termes de performances. Veuillez utiliser ces fonctions en conséquence.

3voto

Sajith Mantharath Points 498

Sous-chaîne(startIndex, endIndex(non inclus))

substr(startIndex, combien de caractères)

const string = 'JavaScript';

console.log('substring(1,2)', string.substring(1,2)); // a
console.log('substr(1,2)', string.substr(1,2)); // av

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X