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 éclairé
    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
    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 confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 653
    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
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    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 -
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2022
    Messages : 16
    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);

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 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 éclairé
    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
    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