Exercice 29/38

Soit la variable var1 de type string et qui contiennent le texte suivant

Lorem ipsum dolor sit amet

Dans le fichier "script.js" :

  • déclarez les variables result1 et result2;
  • exportez le texte ipsum dans result1 en utilisant slice();
  • exportez toute la chaîne à partir du d dans result2 en utilisant slice();
  • cliquez sur "Soumettre ma réponse".

Leçon 29/38

Dans une chaîne de caractères, il peut être utile de récupérer une partie du contenu avec la fonction slice().

À quoi ça sert ?

  • slice() récupère une partie d'une chaîne de caractères;
  • la sélection du texte à extraire utilise la position des caractères dans la chaîne (le premier caractère étant à la position 0);
  • la position de début est obligatoire, la position de fin est optionnelle et exclusive (le caractère correspondant ne sera pas sélectionné);
  • si la position de fin n'est pas indiquée, tous les caractères jusqu'à la fin de la chaîne seront récupérés à partir de la position de début;
  • il est possible de commencer par la fin de la chaîne de caractères en utilisant des chiffres négatifs;

Exemple :

var chaine = "Voici du texte";
var resultat1 = chaine.slice(1,4); // Affiche "oic"
var resultat2 = chaine.slice(0,5); // Affiche "Voici"
var resultat3 = chaine.slice(1); // Affiche "oici du texte"

Commentaires les mieux notés

  • yehia.maxime

    bonjour mram, j'arrive pas a trouver le bon résultat pourtant j'ai recompté 100 fois

  • mram Administrateur

    Bonjour, n'oubliez pas qu'on compte à partir de zéro et que les espaces sont compris dedans.

  • yacine

    J'ai trouvé!

  • aure_max

    j'ai finis par réussir l'exercice mais je ne comprend pas, si pour result1 c'est 6, ce cas il doit y avoir l'espace avant le mot

53 Commentaires

  • yehia.maxime

    yehia.maxime

    bonjour mram, j'arrive pas a trouver le bon résultat pourtant j'ai recompté 100 fois

    le 09/01/2017 à 06h16

  • mram

    mram Administrateur

    Bonjour, n'oubliez pas qu'on compte à partir de zéro et que les espaces sont compris dedans.

    le 09/01/2017 à 12h34

  • yacine

    yacine

    J'ai trouvé!

    le 12/01/2017 à 19h42

  • aure_max

    aure_max

    j'ai finis par réussir l'exercice mais je ne comprend pas, si pour result1 c'est 6, ce cas il doit y avoir l'espace avant le mot

    le 15/01/2017 à 15h03

  • mram

    mram Administrateur

    C'est noté et corrigé, l'exercice sera mis à jour.

    le 19/05/2016 à 21h31

  • v.redois

    v.redois

    "Avez-vous bien affecté le bon texte à "result2" ?" Oui.

    le 19/05/2016 à 21h30

  • jean-francois.monti

    jean-francois.monti

    bonjour je ne comprend pas " avez-vous bien affecté slice" j'ai bien compté en partant de zero ???

    le 06/10/2016 à 17h18

  • yacine

    yacine

    Bonjour je ne comprends pas mon erreur.

    le 12/01/2017 à 19h24

  • jean-francois.monti

    jean-francois.monti

    L'exercice a une faille ?

    le 06/10/2016 à 17h39

  • Fernanth

    Fernanth

    var result1=var1.slice(6,10); var result2=var1.slice(12); ou est mon erreur ?

    le 17/01/2017 à 11h42

  • ordy225

    ordy225

    bsr je suis Perdu totalement je ne sais plus où mettre la tête car elle vraiment casser deux heures de fouille var result1=var1.slice(6); var result2=var1.slice(12);

    le 27/04/2017 à 02h28

  • mram

    mram Administrateur

    C'est le 10 qui n'est pas bon, n'oubliez pas que la position de fin est exclusive.

    le 17/01/2017 à 22h11

  • ordy225

    ordy225

    Merci j'ai trouver la solution je devais simplement fais attention à l'explication et à l'exemple. Merci!

    le 27/04/2017 à 20h56

  • mram

    mram Administrateur

    Ligne 2, pourquoi mettre 25 puisque de toute façon on va jusqu'au bout du texte ?

    le 10/10/2016 à 12h57

  • veronicalavroff

    veronicalavroff

    je ne comprends pas mon erreur!

    le 07/07/2016 à 01h29

  • enzo44200

    enzo44200

    Bobjout mram , pourriez vous m'aider please ?

    le 01/12/2016 à 08h53

  • mram

    mram Administrateur

    Les espaces doivent être pris en compte aussi.

    le 07/07/2016 à 20h14

  • mram

    mram Administrateur

    Ligne 1, n'oubliez pas qu'on compte à partir de zéro, donc ce n'est pas "5" qu'il faut mettre. Ligne 2, il y a juste un nombre à mettre : la position du 1er caractère du texte que l'on souhaite récupérer.

    le 02/12/2016 à 13h46

  • spirit.sandrine

    spirit.sandrine

    bonjour, je ne comprends pas mon erreur ?

    le 13/10/2016 à 10h08

  • debora.arjona

    debora.arjona

    Je comprends pas pourquoi, c'est pas bon mon résultat?

    le 31/12/2016 à 17h08

  • romainmathieu

    romainmathieu

    Bonjour, je ne vois pas mon erreur. un petit coup de main svp

    le 24/10/2016 à 14h44

  • mram

    mram Administrateur

    Et non, le "10" n'est pas correct. N'oubliez pas que la position indiquée par ce nombre est exclusive, donc le caractère correspondant n'est pas pris en compte.

    le 02/01/2017 à 14h46

  • mram

    mram Administrateur

    Vous n'utilisez pas les bons chiffres, il faut compter à partir de zéro.

    le 25/10/2016 à 21h21

  • kgalexis

    kgalexis

    Je ne vois pas mon erreur ?!

    le 16/10/2016 à 14h04

  • khaera.belkadi

    khaera.belkadi

    var result1 = var1.slice(4,9); var result2 = var1.slice(10); je ne comprends pas mon erreur. pouvez-vous m'aider?

    le 08/12/2016 à 10h02

  • khaera.belkadi

    khaera.belkadi

    C'est bon je bien de trouvez mon erreur.

    le 08/12/2016 à 10h09

  • mram

    mram Administrateur

    Relisez les explications : la 2ème position dans slice() est exclusive...

    le 17/10/2016 à 00h04

  • yehia.maxime

    yehia.maxime

    merci du tuyau !!

    le 09/01/2017 à 18h19

  • patricerameaux

    patricerameaux

    il me semble que le code est bon pourtant : j'ai essayé en déclarant var1 comme ci-dessus et en l'utilisant directement mais rien n'y fait

    le 05/10/2016 à 15h10

  • mram

    mram Administrateur

    Attention, "var1" existe déjà et n'a pas besoin d'être déclarée, votre ligne 1 n'est pas nécessaire.

    le 05/10/2016 à 21h06

  • mram

    mram Administrateur

    Et n'oubliez pas qu'il faut commencer à 0 pour compter le nombre de caractères.

    le 05/10/2016 à 21h07

  • viesephora

    viesephora

    var result1 = var1.slice(6); var result2 = var1.slice(12); bonsoir j'ai un probleme avec mon result1. j'augmenté reduit les espaces, changé les valeur eventuellement fait un copier collé des mots a écrire car je pensai avoir fait une faute d'orthographe rien y fait

    le 14/11/2017 à 16h38

  • mram

    mram Administrateur

    Bonjour, à la première ligne il faut indiquer deux paramètres à slice() mais vous n'en mettez qu'un seul.

    le 16/11/2017 à 18h33

  • alexismoquet

    alexismoquet

    var var1="Lorem ipsum dolor sit amet"; var result1= var1.slice(5,11); var result2= var1.slice(12);

    le 02/10/2017 à 12h14

  • mram

    mram Administrateur

    Bonjour, le chiffre 5 n'est pas correct.

    le 03/10/2017 à 22h03

  • alexismoquet

    alexismoquet

    est-ce bon ? ca fonctionne avec l'execution

    le 02/10/2017 à 12h15

  • mram

    mram Administrateur

    Bonjour, le chiffre 5 n'est pas correct.

    le 03/10/2017 à 22h04

  • vfaiola-21

    vfaiola-21

    hello, je ne vois pas mon erreur ;-) merci d'avance

    le 27/07/2018 à 14h35

  • mram

    mram Administrateur

    Ajoutez un espace après le signe =

    le 01/08/2018 à 05h45

  • ou.broly-83

    ou.broly-83

    A quoi ça correspond ? Je ne comprends pas

    le 27/07/2018 à 15h06

  • mram

    mram Administrateur

    Les chiffres correspondent à la position des caractères dans le texte, espaces compris. Et on compte à partir de zéro.

    Exemple : "Toto fait du vélo".

    Le "f" est à la position 5.

    le 01/08/2018 à 05h48

  • ludovicthiolet

    ludovicthiolet

    Bonjour vboici mon code : "var result=var1.slice(6,11); var result=var1.slice(12);" Pourriez vous me dire EXACTEMENT où est mon erreur. Je compte bien à partir de 0 et je compte également les espaces.

    le 04/10/2017 à 14h35

  • mram

    mram Administrateur

    Bonjour, vous comptez bien mais vous n'aviez pas déclaré les variables correctement.

    le 09/10/2017 à 00h13

  • ludovicthiolet

    ludovicthiolet

    C'est bon j'ai trouvé mon erreur. J'avais bien compté mais UNE FOIS DE PLUS, j'ai été trompé par l'exemple de la leçon comme pour la leçon 28. Dans la leçon 28 on nous montre " var result1=..." et "var result2=..." alors qu'en fait dans l'exercice il ne fallait pas écrire "var result1=..." et "var result2=..." mais "var result=...". Et dans cette exercice finalement il faut bien faire comme dans la leçon et bien écrire "var result1=..." et "var result2=...". Franchement j'ai du mal à suivre la logique la dedans. Quand on nous dit à la réunion d'information qu'il faut 30 heures pour faire cette pré-formation j'ai beaucoup de mal à y croire vu les incohérences.

    le 04/10/2017 à 14h45

  • mram

    mram Administrateur

    Bonjour, pour faire les exercices il faut suivre les instructions, et donc faire la différence avec la partie théorie. Si vous suivez les instructions, normalement ça devrait aller.

    le 09/10/2017 à 00h15

  • lercat-63

    lercat-63

    Bonjour; il y a un truc que j'aimerai savoir; est-ce que les espaces comptent ?

    le 13/06/2018 à 19h06

  • mram

    mram Administrateur

    Bonjour, oui ils comptent.

    le 19/06/2018 à 04h37

  • mapmaya-7

    mapmaya-7

    Bonjour, pouvez-vous vérifier mon exercice ? voici le message d'erreur : Avez-vous utilisé la fonction slice() correctement dans les deux cas ?,Avez-vous bien affecté le bon texte à "result1" ?,Avez-vous bien affecté le bon texte à "result2" ?

    le 18/05/2018 à 13h50

  • mram

    mram Administrateur

    Bonjour, n'oubliez pas que l'on compte à partir de zéro.

    le 23/05/2018 à 06h50

  • florentin.cambou

    florentin.cambou

    J'ai réussis l'exo après quelques minutes ou je me creuser la tête , juste poser vous sur la leçon regarder comment dans la leçon est compter les caractères et vous verrais c'est juste hyper simple quand je me suis aperçus de mon erreur je me suis dis " ah quel con " donc pour vous dire c'est vraiment simple

    le 16/08/2017 à 21h54

  • mram

    mram Administrateur

    Oui, malheureusement beaucoup de personnes passent trop vite les instructions et font des erreurs qui pourraient être éviter afin de ne pas se démotiver.

    le 17/08/2017 à 16h05

  • abdallahbarryt5

    abdallahbarryt5

    j'ai en fin trouvé après 5min de comptage

    le 27/09/2017 à 17h25

  • khalidb

    khalidb

    bonjour il y a trop d'erreur sur plusieurs exercice qui me fait perdre un temps enorme cela m'inquiete pour la suite

    le 04/12/2017 à 20h34

  • mram

    mram Administrateur

    Bonjour, il faut bien prendre le temps de lire l'énoncé. Au début vos chiffres donnés en paramètres de slice() n'étaient pas les bons. Mais vous avez fini par trouver c'est bien.

    le 05/12/2017 à 11h21

  • julien-demaria

    julien-demaria

    bonjour, je ne comprends pas mon erreur : var result1 = chaine.slice(6,10); var result2 = chaine.slice(11);

    le 08/08/2017 à 16h49

  • mram

    mram Administrateur

    Bonjour, les nombres 10 et 11 ne sont pas corrects.

    le 09/08/2017 à 11h38

  • kahor-95

    kahor-95

    Je ne comprend pas mon erreur

    le 09/02/2018 à 18h51

  • mram

    mram Administrateur

    Bonjour, sur la première ligne, un des paramètres n'est pas le bon.

    le 12/02/2018 à 21h50

  • leon.thom-33

    leon.thom-33

    Bonsoir, vous pouvez m'aider

    le 10/02/2018 à 20h59

  • mram

    mram Administrateur

    Bonjour, votre code semble correct. Quelle erreur avez-vous ?

    le 12/02/2018 à 21h57

  • radiere.theo-90

    radiere.theo-90

    bonjour, vous expliquez que la fin est exclusive, mais dans l'exemple le résultat indiqué n'exclu pas les derniers caractères indiqués dans la demande de slice....

    le 30/03/2018 à 09h15

  • mram

    mram Administrateur

    Bonjour, si c'est bien le cas. Il y a trois exemples. Duquel parlez-vous ?

    le 01/04/2018 à 02h40

  • radiere.theo-90

    radiere.theo-90

    c'est en fait la position de départ qui est exclusive, et non la position de fin !

    le 30/03/2018 à 09h20

  • mram

    mram Administrateur

    Non la position de départ n'est pas exclusive, mais attention on compte à partir de zéro. Si on met texte.slice(6,11) on extrait le texte à partir du 7ème caractère jusque'au 11ème caractère (qui est à la position 10 dans le tableau). Le 12ème caractère (position 11 du tableau) n'est pas extrait.

    le 01/04/2018 à 02h45

  • ari

    ari

    J'ai compté correctement dès le départ et ça ne marche pas il y avait une erreur dans mon code, j'avais marqué slice.var1 au lieu de l'inverse comme quoi il faut toujours relire son code^^

    le 11/10/2017 à 17h12

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Extraire du texte avec slice()</title> <script src="script.js"></script> </head> <body> </body> </html>
var var1 = 'Lorem ipsum dolor sit amet'