Quelle est la différence entre
alert("abc".substr(0,2));
y
alert("abc".substring(0,2));
Ils semblent tous deux produire "ab".
Quelle est la différence entre
alert("abc".substr(0,2));
y
alert("abc".substring(0,2));
Ils semblent tous deux produire "ab".
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'
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.
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/
@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.
@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
substring() : Il comporte 2 paramètres "début" et "fin".
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
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.
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.
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 unsubstring
méthode" ? C'est vraiment la méthode préférée de surcharge ?8 votes
A partir d'aujourd'hui, MDN a un grand avertissement rouge à propos de
substr()
étant ce qu'on pourrait appeler "pseudo-déprécié" en haut de la page de documentation ici : developer.mozilla.org/fr/US/docs/Web/JavaScript/Référence/ - Quelqu'un a-t-il plus d'informations à ce sujet, par exemple, y a-t-il un navigateur qui prévoit de déprécier réellement lesubstr()
à tout moment dans le futur ? Ou, comme l'a suggéré Steven Lu, pourrait-il y avoir des inconvénients en termes de performance à utilisersubstr()
à l'avenir ?0 votes
@jamess A partir d'aujourd'hui, il n'y a pas d'avertissement.
1 votes
@codekandis c'est à la table inférieure : i.imgur.com/BHkYWHA.png