IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Suppression de caractère dans une chaine


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut Suppression de caractère dans une chaine
    Bonjour,

    J'ai une question sur JS, mais assez simple.

    En gros j'ai une variable de type string avec le nom "jean-pierre", je voudrais afficher cette chaine de caractère sans le tiret ("-"), donc j'afficherai dans la console "jeanpierre".

    Voici le code.


    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    let str = "jean-pierre";
    let char_pos = 0;
     
    let part1 = str.substring(4, char_pos);
    let part2 = str.substring(5, str.length);
    let result = (part1 + part2);
     
    console.log(part1);
    console.log(part2)
    console.log(result);


    Ce que je ne comprends pas, c'est que pourquoi on utilise "char_pos" dans cette ligne? Quelle est ça valeur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let part1 = str.substring(4, char_pos);
    Merci pour vos explications.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    cette variable a la même valeur que définie plus haut, l'utilisation de "substring" ne modifie pas sa valeur.

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Salut

    La ligne 2 de ton exemple est let char_pos = 0; donc à la ligne 4 la variable char_pos contient 0.

    Pour ton exemple de nom composé cela fonctionne, mais si tu as comme nom composé Marie-Antoinette ou François-Damien, là cela ne fait pas le job.
    Par contre str.replace("-","") te donnera la bonne solution, quelque soit l'endroit ou se trouve le caractère -
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre du Club Avatar de ViskashaEveillé
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2022
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2022
    Messages : 16
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Par contre str.replace("-","") te donnera la bonne solution, quelque soit l'endroit ou se trouve le caractère -
    Je pense que c'est la réponse optimale pour ce que tu cherches à faire.

    Pour répondre à ta question, pourquoi on utilise char_pos dans le fonction "substring"... Eh bien, on ne devrait pas. Ou plutôt pas dans cet ordre !

    Le code correct aurait été :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let part1 = str.substring(char_pos,4); // équivaut à "jean"
    La raison pour laquelle ton code fonctionne malgré tout se trouve dans la doc officiel de la function substring:



    Si indiceA est supérieur à indiceB, la fonction substring() intervertira ces deux valeurs afin de les traiter comme si elles avaient été passées dans le bon ordre. Par exemple : str.substring(1, 0) == str.substring(0, 1).

    Lien vers la doc officiel

    Je pense que char_pos devait contenir à l'origine la position du tiret. Dans ce cas le code correct aurait dû être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var char_pos=str.indexOf('-');
    let part1 = str.substring(0,char_pos);
    let part2 = str.substring(char_pos+1,str.length);
    Mes Projets disponibles sur GIT

    Vous avez un projet, une question, une demande à me soumettre ? N'hésitez pas à me contacter ici.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Clairement c'est un cas pour une regEx...
    Mais voici une autre méthode moins gourmande...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    let str = "jean-pierre";
    output = str.split('-').join('');
    console.log(output)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Merci beaucoup pour vos réponses et vos explications.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression de caractères dans une chaine
    Par ilyas2812 dans le forum C
    Réponses: 8
    Dernier message: 01/02/2019, 20h21
  2. [XL-2010] Suppression de caractères dans une chaine
    Par BLZ007 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/07/2014, 19h53
  3. suppression caractère dans une chaine
    Par courson dans le forum Débuter
    Réponses: 1
    Dernier message: 03/04/2009, 20h36
  4. Suppression de caractères dans une chaine
    Par mouhammed dans le forum C
    Réponses: 19
    Dernier message: 01/11/2008, 17h34
  5. Suppression de certains caractères dans une chaine
    Par Tchupacabra dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2007, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo