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 :

comparaison de chaines


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 40
    Points
    40
    Par défaut comparaison de chaines
    bonjour

    j'ai un formulaire avec deux champs textes et j'ai créé une fonction de vérification de ce que je saisis

    les champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      <! DESCRIPTION >
      <tr><td valign=TOP>Description</td><td><input type="text" name="description" value="<?php echo $saisie_descrip ?>" SIZE="66" onKeyPress="javascript:Caract_Verif(this, 32) ;"></td></tr>
     
      <! COMMENTAIRE >
      <tr><td valign=TOP>Commentaire</td><td><TEXTAREA name="commentaire" rows="5" cols="50" onKeyPress="javascript:Caract_Verif(this, 245) ;"><?php echo $saisie_comment ?></TEXTAREA></td></tr>

    la fonction :
    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
     
    <SCRIPT LANGUAGE=JavaScript>
     
    /*-------------------- Caract_Verif --------------------
    Fonction permettant de vérifier la taille
    d'un commentaire
    + contrôle des caractères saisis
    -------------------------------------------------------*/
    //*** Paramètres
    //*** texte : objet représentant le texte
    //*** max : nombre de caractères maximum
    function Caract_Verif(texte, max)
    {
      if (texte.value.length >= max)
      {
        alert('Pas plus de ' + max + ' caractère(s) !') ;
        texte.value = texte.value.substr(0, max - 1) ;
      }
     
      var interdit1 = '\"';
      var interdit2 = '\'';
      if (texte.value.charAt(texte.value.length-1) == interdit1 || texte.value.charAt(texte.value.length-1) == interdit2);
      {
        alert (texte.value.charAt(texte.value.length-1));
        texte.value = texte.value.substr(0, texte.value.length-1) ;
      } 
     
    }
    </script>
    la première partie de la fonction, vérification de la longueur maxi, marche très bien
    par contre la deuxième plus précisément la comparaison du caractère saisi avec les caractères interdits est toujours considérée comme vraie quique je tape comme caractère !!!

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    Plutôt que d'entrer les caractères, utilise leurs codes ASCII :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     var interdit1 = String.fromCharCode(34);
     var interdit2 = String.fromCharCode(39);
     
     if (texte.value.charAt(parseInt(texte.value.toString().length-1)) == interdit1
     ||  texte.value.charAt(parseInt(texte.value.toString().length-1)) == interdit2)
     {
        alert(texte.value.charAt(texte.value.length-1));
        texte.value = texte.value.substr(0, texte.value.length-1) ;
     }
    -j'ai ajouté dans le test un parseInt pour être sûr de manipuler des nombres ;
    -j'ai fait également un value.toString().length. Je me demande si c'est nécessaire.... car même si value contient un nombre cela reste une chaîne de caractères.

  3. #3
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Aussi :n'existe pas... a remplacer par

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Auteur
    -j'ai fait également un value.toString().length. Je me demande si c'est nécessaire....
    ça fonctionne aussi sans je viens de vérifier, merci à toi !
    Et tu sais quoi ? ben j'ai fini !!! tout juste dans les temps ouf ...
    je me demande comment j'aurais fait sans ce site pas évident pour un stagiaire débutant de manipuler 4 langages à la fois : php, html, javascript et sql !!!
    surtout quand en formation on a fait du VB et du JAVA ...


    Merci encore, merci à tous les gens de ce site et bonne continuation !!!

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

Discussions similaires

  1. [VBA]excel comparaison de chaine de caractere
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2006, 15h32
  2. [langage] Comparaison de chaîne
    Par Fastshadow dans le forum Langage
    Réponses: 7
    Dernier message: 05/09/2004, 18h58
  3. comparaison de chaines de caracteres en PLSQL
    Par biozaxx dans le forum PL/SQL
    Réponses: 3
    Dernier message: 19/08/2004, 09h41
  4. Comparaison de chaines
    Par Marc_P dans le forum Linux
    Réponses: 6
    Dernier message: 17/02/2004, 17h04
  5. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41

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