javascript remove Quelle est la différence entre substr et substring?



substring javascript (7)

Quelle est la différence entre

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

et

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

Ils semblent tous les deux produire "ab".



Answer #2

Un autre gotcha que j'ai récemment rencontré est que dans IE 8, "abcd".substr(-1) renvoie par erreur "abcd" , alors que Firefox 3.6 renvoie "d" comme il se doit. slice fonctionne correctement sur les deux.

Plus sur ce sujet peut être trouvé rapd.wordpress.com/2007/07/12/javascript-substr-vs-substring .



Answer #4

La grande différence est que substr() est une méthode obsolète qui peut toujours être utilisée, mais doit être utilisée avec précaution car elle devrait être supprimée complètement dans le futur. Vous devriez travailler pour enlever leur utilisation de votre code. Et la méthode MDN réussi et spécifié l'ancienne.


Answer #5

La principale différence est que

substr () vous permet de spécifier la longueur maximale à retourner

substring () vous permet de spécifier les indices et le second argument n'est PAS inclusif

Il existe des subtilités supplémentaires entre substr () et substring () telles que la gestion des arguments égaux et des arguments négatifs. Notez également substring () et slice () sont similaires mais pas toujours les mêmes.

  length vs indices
    "string".substr(2,4);     // "ring" (start, length) length is the maximum length to return
    "string".substring(2,4);  // "ri"   (start, end) indices / second value is NOT inclusive
    "string".slice(2,4);      // "ri"   (start, end) indices / second value is NOT inclusive

  watch out for substring swap
    "string".substr(3,2);     // "in"
    "string".substring(3,2);  // "r"    (swaps the larger and the smaller number)
    "string".slice(3,2);      // ""     (just returns "")

  handling negative arguments
    "string".substr(2,-4);    // ""
    "string".substring(2,-4); // "st"   (converts negative numbers to 0, then swaps first and second position)
    "string".slice(2,-4);     // ""

Answer #6

substr ( MDN ) prend les paramètres de (from, length) .
substring ( MDN ) prend les paramètres de (from, to) .

alert("abc".substr(1,2)); // returns "bc"
alert("abc".substring(1,2)); // returns "b"

Vous pouvez vous rappeler que substring prend des index, comme le fait encore une autre méthode d'extraction de chaîne, slice .

En partant de 0, vous pouvez utiliser l'une ou l'autre méthode.


Answer #7

La différence est le deuxième paramètre. Leurs deuxièmes paramètres, alors que les deux nombres, attendent deux choses différentes:

Lors de l'utilisation de la sous-chaîne, le deuxième paramètre est le premier à ne pas inclure:

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

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

Lors de l'utilisation de substr, le second 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'




substring