Exercice 30/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 la variable result;
  • exportez le texte dolor sit dans result en utilisant substr();
  • cliquez sur "Soumettre ma réponse".

Leçon 30/38

Pour récupérer une partie d'une chaîne de caractère il existe aussi la fonction substr() qui fait la même chose mais de manière un peu différente.

À quoi ça sert ?

  • substr() récupère une partie d'une chaîne de caractères;
  • la sélection du texte à extraire utilise la position du premier caractère à extraire puis la longueur de la sous-chaîne que vous souhaitez extraire;
  • la position de début est obligatoire, la longueur est optionnelle;
  • si la longueur 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;

Exemple :

var chaine = "Voici du texte";
var resultat = chaine.substr(9,5); // Affiche "texte"

Commentaires les mieux notés

  • yehia.maxime

    tout comme le précédent je n'y arrive pas non plus :(

  • mram Administrateur

    @bsmeyers84 : il faut extraire le texte "dolor sit" et il ne fait pas 22 caractères...

  • anthony.mero

    Lorsque j'exécute mon code JS tout fonctionne, mais ma réponse ne passe pas. Il affiche ce message "avez vous utilisé la fonction SUBSTR()CORRECTEMENT ?"

  • mram Administrateur

    Il n'y a pas besoin de déclarer "var1", c'est déjà fait. Et le 2ème chiffre dans substr() n'est pas le bon.

35 Commentaires

  • yehia.maxime

    yehia.maxime

    tout comme le précédent je n'y arrive pas non plus :(

    le 09/01/2017 à 06h47

  • mram

    mram Administrateur

    @bsmeyers84 : il faut extraire le texte "dolor sit" et il ne fait pas 22 caractères...

    le 20/07/2016 à 13h13

  • anthony.mero

    anthony.mero

    Lorsque j'exécute mon code JS tout fonctionne, mais ma réponse ne passe pas. Il affiche ce message "avez vous utilisé la fonction SUBSTR()CORRECTEMENT ?"

    le 20/10/2016 à 18h37

  • mram

    mram Administrateur

    Il n'y a pas besoin de déclarer "var1", c'est déjà fait. Et le 2ème chiffre dans substr() n'est pas le bon.

    le 21/10/2016 à 10h45

  • danderhy3

    danderhy3

    Bonjour, pourriez vous m'aider je ne comprends pas mon erreur pourriez vous m'aider svp ?

    le 03/05/2017 à 15h23

  • mram

    mram Administrateur

    Non ce n'est pas bugland, relisez comment s'utilise la fonction, et notamment le calcul des positions de début et de fin permettant d'extraire la chaîne de caractères.

    le 17/01/2017 à 22h13

  • raphael.choisi

    raphael.choisi

    Bonjour, le bouton "exécuter Java Script" ne fonctionne pas....

    le 26/12/2016 à 13h02

  • Fernanth

    Fernanth

    soit c'est bug-land, soit je fat que des erreurs mais c'est le troisième exercice ou je ne trouve pas mon erreur...

    le 17/01/2017 à 11h56

  • alie.rostan

    alie.rostan

    je ne comprend pas mon erreur pourtant j'ai compté encore et encore mon code : var result = var1.substr(12,21); ????

    le 26/01/2017 à 13h34

  • mram

    mram Administrateur

    Dans ce cas précis il n'y a pas besoin d'utiliser ce bouton car il ne fera rien de toute façon.

    le 02/01/2017 à 14h24

  • mram

    mram Administrateur

    Bonjour, attention le deuxième nombre correspond à la longueur du texte que vous souhaitez extraire. Et le premier nombre n'est pas le bon. Relisez l'exemple proposé.

    le 09/05/2017 à 01h43

  • mram

    mram Administrateur

    C'est le 2ème chiffre qui n'est pas le bon. Relisez comment il faut compter cette position.

    le 27/01/2017 à 16h16

  • khaera.belkadi

    khaera.belkadi

    Je ne comprends pour le précédent j'ai bien vu mon erreur mais là. avez-vous bien utilisé substr().

    le 08/12/2016 à 10h18

  • khaera.belkadi

    khaera.belkadi

    var result = var1.substr(11,18); pouvez-vous m'élairer sur mon erreur? s'il vous plait?

    le 08/12/2016 à 10h40

  • bsmeyers84

    bsmeyers84

    je pense que c'est bon mais quand je fait soumettre ma réponse il affiche ce message "avez vous utilisé la fonction SUBSTR()CORRECTEMENT

    le 19/07/2016 à 22h49

  • mram

    mram Administrateur

    N'oubliez pas qu'on compte à partir de zéro pour trouver la position de départ, et le 2ème nombre doit indiquer la longueur du texte à extraire et on la position du dernier caractère.

    le 09/12/2016 à 22h49

  • djamchid

    djamchid Administrateur

    j'ai essayé chaine.substr, string.substr, str.substr, rien n'y fait, substr is not defined

    le 20/07/2016 à 12h36

  • mram

    mram Administrateur

    @djamchid : l'exercice fonctionne, il faut utiliser substr() sur var1 ...

    le 20/07/2016 à 13h16

  • mram

    mram Administrateur

    N'oubliez pas qu'on compte à partir de zéro.

    le 09/01/2017 à 12h36

  • philippe.kerouanton

    philippe.kerouanton

    Domage ! "result = var1.substr(var1.indexOf("dolor sit"),"dolor sit".length);" ne valide pas la réponse alors que c'est plus logique.

    le 21/11/2016 à 22h04

  • mram

    mram Administrateur

    Oui, on est d'accord, mais .indexOf() n'est pas abordé dans les exercices. Donc ici on demande d'utiliser simplement substr() avec les chiffres des positions en dur.

    le 24/11/2016 à 12h50

  • djalloh2016-72

    djalloh2016-72

    exo encore instructif et facile je pense que nous les apprenant nous ne lisons pas bien l'énoncé et n'essayons surtout pas de comprendre ce qui est demandé raison pour laquelle toujours d'erreurs:en un ligne voici le code:var result = var1.substr(12,9);

    le 25/02/2018 à 17h53

  • clad91130-95

    clad91130-95

    mon message entier n'as pas été pris en compte j'ai calculé la longueur en partant de zero et en comptant les espaces j'arrive en longueur 12 a 16 et je vois dans les commentaires 12 a 9 je ne comprends pas

    le 03/09/2018 à 10h54

  • mram

    mram Administrateur

    Le premier nombre correspond à la position du premier caractère du texte que l'on souhaite extraire. Le deuxième, le nombre de caractères que l'on souhaite extraire à partir de celui-ci.

    Donc à partir de la 12ème position, on souhaite extraire 9 caractères.

    le 10/09/2018 à 03h35

  • pauline.morganti

    pauline.morganti

    var var1="Lorem ipsum dolor sit amet"; var result=var1.substr(11,11); alert(result); Il s'affiche bien mais me demande si j'ai bien utilisé la fonction

    le 13/11/2017 à 15h06

  • mram

    mram Administrateur

    Bonjour, la façon dont vous utilisez substr() dans vos premiers essais était la bonne. Seuls les nombres donnés en paramètre n'étaient pas corrects.

    le 16/11/2017 à 17h28

  • vladimir.mouilleron

    vladimir.mouilleron

    bonjour en regardant bien l ex vous vous rendrez compte qu il faut compter les espaces malin et tres facile a la fois

    le 17/10/2017 à 12h20

  • alexismoquet

    alexismoquet

    bjr, je ne comprend pas mon erreur, faut-il compter les espaces ?

    le 04/09/2017 à 14h08

  • mram

    mram Administrateur

    Bonjour, et oui ils sont comptés comme caractères à part entière.

    le 06/09/2017 à 11h24

  • alexismoquet

    alexismoquet

    pourtant ca affiche bien ce qu'il faut avec çà : var var1='Lorem ipsum dolor sit amet;' var result = var1.substr(11,10); alert(result);

    le 04/09/2017 à 14h14

  • mram

    mram Administrateur

    Bonjour, les nombres utilisés dans substr() ne sont pas les bons.

    le 06/09/2017 à 11h26

  • andrewedina-29

    andrewedina-29

    var var1 ="Lorem ipsum dolor sit amet"; var result = var1.substr(12,9); alert(result);

    le 04/02/2018 à 22h30

  • mram

    mram Administrateur

    Bonjour , la ligne 1 est inutile car on a déjà déclaré "var1" pour vous et elle contient déjà du texte.

    le 06/02/2018 à 11h46

  • Stem

    Stem

    Pour info, pour que celà soit validé, il ne faut pas mettre d'espace de part et d'autre du signe égal, ni après la virgule entre les 2 nombres. C'est à dire "var result=var1.substr(XX,X);". La vérification ne devrait pas tenir compte des espacements.

    le 06/10/2017 à 02h29

  • mram

    mram Administrateur

    Bonjour, c'est prévu pour une prochaine mis à jour où ça provoquera un avertissement mais sans bloquer l'exercice donc il pourra être valider.

    le 09/10/2017 à 00h34

  • pauline.morganti

    pauline.morganti

    var result=var1.substr(12,21); alert(result); ne veux toujours pas je ne comprends pas

    le 19/11/2017 à 10h57

  • mram

    mram Administrateur

    Bonjour, le deuxième paramètre n'était pas correct.

    le 22/11/2017 à 00h53

  • rrit3880

    rrit3880

    bonjour ou ce trouve mon problème tout est bon pourtant var var1="Lorem ipsum dolor sit amet"; var result=var1.substr(11,10); alert(result);

    le 20/11/2017 à 11h30

  • mram

    mram Administrateur

    Bonjour, oui n'oubliez pas qu'on compte à partir de zéro.

    le 22/11/2017 à 01h07

  • doucette.manon

    doucette.manon

    var result = var1.substr("12,9"); alert(result); M'affiche : Avez-vous utilisé la fonction substr() correctement ?

    le 01/12/2017 à 09h41

  • mram

    mram Administrateur

    Bonjour, oui c'est correct, mais essayez de le faire en deux étapes. Déclarer juste "result" d'abord, puis affecter le résultat de l'opération ensuite.

    le 05/12/2017 à 10h58

  • JAOIDE

    JAOIDE

    Bonjour, le premier caractère est comptez comme 0, ensuite bien calculer jusqu'au mot à extraire (inclure les espaces) ensuite comptez le nombre de lettres à extraire (inclure les espaces) des mots demandé: voici le résultat : var result=var1.substr(12,9);

    le 28/10/2018 à 15h13

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