Maison >interface Web >js tutoriel >Explication détaillée des exemples d'utilisation et de comparaison des différences de trois fonctions de chaîne d'interception en JavaScript

Explication détaillée des exemples d'utilisation et de comparaison des différences de trois fonctions de chaîne d'interception en JavaScript

伊谢尔伦
伊谢尔伦original
2017-07-25 11:40:141451parcourir

En JavaScript, l'extraction de sous-chaînes s'effectue principalement via l'une des trois méthodes suivantes : Slice, Substring et Substr.

// slice 
// 语法: string.slice(start [, stop])
"Good news, everyone!".slice(5,9); 
// 'news'
// substring 
// 语法: string.substring(indexA [, indexB])
"Good news, everyone!".substring(5,9); 
// 'news'
// substr
// 语法: string.substr(start [, length])
"Good news, everyone!".substr(5,4); 
// 'news'

Entrez un paramètre d'index de début et un paramètre d'index de fin (ou de longueur) facultatif parmi les trois méthodes.

Mais ils diffèrent sur certains points importants :
1. La méthode substr() extrait le nombre spécifié de caractères à partir de la position spécifiée.
param : start est l'index de position pour commencer l'extraction des caractères, length est le nombre et la longueur des caractères extraits.
retour : une nouvelle chaîne. caractères de longueur commençant au début.
Les performances sont incohérentes dans différents navigateurs. Les navigateurs modernes autorisent le paramètre d'index de début à être un nombre négatif pour indiquer le nombre de caractères à extraire à partir de la fin de la chaîne. Cependant, dans les navigateurs IE8 et inférieurs, le paramètre d'index de démarrage minimum est calculé à partir de 0. [substr est une fonctionnalité ECMAScript supplémentaire pour les navigateurs Web. Il n'est pas recommandé de l'utiliser lorsque l'index de départ est une valeur négative]

var str = "abcdefghij";
console.log("(1): "      + str.substr(1));     // (1): bcdefghij
console.log("(1,2): "    + str.substr(1,2));   // (1,2): bc
console.log("(-3): "     + str.substr(-3));    // (-3): hij
console.log("(-3,2): "   + str.substr(-3,2));  // (-3,2): hi
console.log("(20, 2): "  + str.substr(20,2));  // (20, 2):
console.log("(-20, 2): " + str.substr(-20,2)); // (-20, 2): ab
 
// ie8及以下
console.log("(-3): " + str.substr(-2)); // (-20, 2): hij
console.log("(-3, 2): " + str.substr(-2)); // (-20, 2): ab

2. un index et un autre sous-ensemble, ou jusqu'à la fin de la chaîne.
param : indexA, indexB La plage de valeurs des deux paramètres est un entier compris entre 0 et la longueur de la chaîne.
return : renvoie une nouvelle chaîne, en commençant par le petit index jusqu'au grand index, y compris les caractères à la position du petit index, à l'exclusion des caractères à la position du grand index.
Les paramètres de la sous-chaîne sont réversibles, elle commence toujours par une petite valeur de paramètre et se termine par une grande valeur de paramètre. Si l'argument est inférieur à 0 ou NaN, il est traité comme 0, si l'argument est supérieur à la longueur de la chaîne, il est traité comme la valeur de longueur de la chaîne

// assumes a print function is defined
var anyString = "Mozilla";
// Displays "Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));
// Displays "lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));
// Displays "Mozill"
console.log(anyString.substring(0,6));
// Displays "Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));

3. slice Extrait une partie de la chaîne.
param : L'index de position à laquelle beginSlice commence à extraire les caractères. Il peut être négatif. S'il s'agit d'une valeur négative, elle est considérée comme (sourceLength-beginSlice est la longueur de la chaîne). position endSlice à partir de la fin de la chaîne. L'index de position du caractère auquel l'extraction se termine. En cas d'omission, l'extraction est terminée. S'il est négatif, il est traité comme (sourceLength-endSlice).
return : renvoie une nouvelle chaîne, commençant par start (y compris start) et se terminant par end (hors fin).
Tous les paramètres peuvent être négatifs. Si l'index est négatif, il sera compté à partir de la fin de la chaîne.

var str1 = "The morning is upon us.";
console.log(str1.slice(4, -2));   //  morning is upon u
var str = "The morning is upon us.";
str.slice(-3);     // "us."
str.slice(-3, -1); // "us"
str.slice(0, -1);  // "The morning is upon us"


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn