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 :

Remplacer un caractère


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut Remplacer un caractère
    Bonjour,

    je fais un espèce de "pendu" et je souhaiterais remplacer le mot qui est caché (composé de *) par les bonnes lettres si elles ont été trouvées.

    J'ai déja fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     function ajoutlettre()
    {
        lett=document.getElementById("lettre").value
            for (i=0; i<lg; i=i+1)
            {
     
               if (lett=mot.charAt(i)) 
                {
                motcache.charAt(i)=mot.charAt(i)
                }
     
            }
    }
    Cette fonction est appelée lorsque je clique sur le bouton "OK" qui va chercher la lettre qui est dans la zone de saisie.

    Mais ceci: motcache.charAt(i)=mot.charAt(i)

    ça a pas l'air de marcher ...

    Pouvez-vous m'aider ?

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Ce n'est pas aussi rapide que cela.
    Tout d'abord, la comparaison en Javascript se fait avec deux égales:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (lett==mot.charAt(i))
    Ensuite, nous ne savons pas ce que sont motcache et mot. Des objets ? Des .value ? Des chaines de caractères ?

    Le mot caché (avec les *) est dans un input ? Un div ? Un span ? Un... ?
    Car sans ça, on ne sait pas si on doit modifier un .value, un .innerHTML, etc.

    Je n'ai pas testé mais faire un charAt(i) = charAt(i) n'est sans doute pas la bonne méthode. Ce serait plutôt un replace(charAt(i), charAt(i));

  3. #3
    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
    plus facile serait d' utiliser un un split...

    Vite fait la base du script a améliorer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <style type="text/css">
    #affiche {letter-spacing:3px;
               text-align:center;}
    </style>
    <script type="text/javascript">
    var mot=""
    var tabmot, tabsol;
    var solution ="developpez"
     
    function init(){
    	tabsol=solution.split('')
    	var i=0
    	while(tabsol[i++]){mot+="*";}
    	tabmot=mot.split('')
    	document.getElementById('affiche').value=mot
     
    	}
     
    function check(){
    var propos=document.getElementById('saisie').value
    var tabpropos=propos.split('')
    var tpl=tabpropos.length
    if(tpl!=tabsol.length){alert('Le nombre de lettres est incorrect!');
    							return false;
    							}
    for(i=0;i<tpl;i++){
             if(tabsol[i]==tabpropos[i]){tabmot[i]=tabsol[i]}
             }
       mot=tabmot.join('')
       document.getElementById('affiche').value=mot
    }     
     
    </script>
    </head>
     
    <body onload="init()">
    <input type="text" value="" readonly="readonly" id="affiche" /><br />
    <input type="text" value="" id="saisie"  /><br />
    <input type="button" onclick="check()" value="valider" />
    </body>
     
    </html>
    c'est une version dans laquelle il faut que la bonne lettre soit placée au emplacement
    Si tu veux une version ou l'on propose une lettre à la fois et elle est acceptée ou que soit sa place dans le mot il faudra passer par une regexp
    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 !

  4. #4
    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
    Quoi que ... même pas ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <style type="text/css">
    #affiche {letter-spacing:3px;
               text-align:center;}
    #saisie {text-align:center;}
    </style>
    <script type="text/javascript">
    var mot=""
    var tabmot, tabsol;
    var solution ="developpez"
    var ml
     
    function init(){
    	tabsol=solution.split('')
    	var i=0
    	while(tabsol[i++]){mot+="*";}
    	tabmot=mot.split('')
    	document.getElementById('affiche').value=mot
    	ml=tabmot.length
    	}
     
    function check(){
    var propos=document.getElementById('saisie').value
     
    for(i=0;i<ml;i++){
             if(tabsol[i]==propos){tabmot[i]=propos}
             }
       mot=tabmot.join('')
       document.getElementById('affiche').value=mot
       document.getElementById('saisie').value=""
        document.getElementById('saisie').focus()
    }     
     
    </script>
    </head>
     
    <body onload="init()">
    <input type="text" value="" readonly="readonly" id="affiche" /><br />
    <input type="text" value="" id="saisie"  maxLength="1"/><br />
    <input type="button" onclick="check()" value="valider" />
    </body>
     
    </html>
    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 !

Discussions similaires

  1. Remplacement du caractère ?
    Par Mvu dans le forum ASP
    Réponses: 9
    Dernier message: 06/01/2005, 18h11
  2. Réponses: 11
    Dernier message: 01/12/2004, 19h09
  3. [CR] Chercher et remplacer un caractère dans 1 chaine
    Par franck.cvitrans dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/09/2004, 16h42
  4. Fonction permettant de remplacer des caractères
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 06/09/2004, 15h48
  5. Remplacer un caractère
    Par Mvu dans le forum ASP
    Réponses: 5
    Dernier message: 20/07/2004, 09h57

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