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 :

Comment utiliser maChaine.match()?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut Comment utiliser maChaine.match()?
    Salut,

    Je suis sous .NET2, j'essaye de faire un CustomValidator (en gros une validation personnalisée). Pour ce faire je dois appeler ma fonction avec deux paramètres : maFonction(src, arg)
    Avec src qui est l'élément dans lequel le message d'erreur va s'afficher (un <span>) et arg... ben je me demande! arg a une propriété Value ( avec le v majuscule) qui retourne la valeur du champ.
    Mais je n'arrive pas à faire un test avec une expression régulière ou tout simplement un toFixed(). Je cherche donc à transformer arg ou arg.Value en String et Number mais je n'y arrive pas. j'ai bien trouvé un moyen détourné mais il ne me plaît pas.

    Voici ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function ValiderMonnaie(src, arg) {
        var exp4 = new RegExp("^\d+$");
        var valTest = new String(arg.Value);
        alert(arg.Value +"**"+valTest+"**"+typeof(valTest)+"**"+ valTest.match(exp4));
    }
    l'alerte me donne : 12**12**object**null (si je saisi 12 évidemment)

    Pouvez-vous m'aider?

    Merci.

  2. #2
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Le problème est-il là où je pense!?

    Si je reprends mon bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var valTest = new String(document.getElementById("tb"+ element).value);
    alert(document.getElementById("tb"+ element).value);
    Ca m'affiche bien 12. Mais le teste ne fonctionne pas, pourtant l'expression régulière est bonne :
    http://jacques-guizol.developpez.com...TestExReg.html
    Saisissez : ^\d+$ et 12 ça montre bien que l'expression est bonne

    Où me plante-je?

  3. #3
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var exp4 = new RegExp("^\d+$");
    var valTest = new String("12");
    alert(valTest.match(exp4));
    me retourne null

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    var exp4 = new RegExp("^\\d+$");

  5. #5
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Ouh pinaise, c'est ça!!!! Je cherchais l'erreur ailleur depuis hier. Que veut dire ce 2ème "\"?

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    \ est un des caractères spéciaux
    \t tabulation
    \n retour chariot
    \\ caractère \
    ...

  7. #7
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par franculo_caoulene
    Ouh pinaise, c'est ça!!!! Je cherchais l'erreur ailleur depuis hier. Que veut dire ce 2ème "\"?



    Je pense plutot que l'erreur vient de
    alert(valTest.match(exp4));
    qui devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(exp4.test(valTest);
    Non?

  8. #8
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Matthieu2000
    \ est un des caractères spéciaux
    \t tabulation
    \n retour chariot
    \\ caractère \
    ...
    Ah, un caractère spécial de DotNet!!!! Tu veux dire que .Net mangeais le \ et qu'il n'arrivait jamais à JS? c'est bien ça?

  9. #9
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Je ne comprends pas pourquoi mon expression originale fonctionne dans le lien que j'ai donné plus haut?

    M'enfin merci à toi, tu m'as été d'une grande aide.

  10. #10
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Citation Envoyé par denisC
    Je pense plutot que l'erreur vient de
    alert(valTest.match(exp4));
    qui devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(exp4.test(valTest);
    Non?
    D'après le cours : http://jacques-guizol.developpez.com...gExp.php#match test() est bugguée sous IE, j'ai donc utilisé match() qui est une méthode de string plutôt que test() qui en est une de RegExp.

  11. #11
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Mais c'est quoi ces deux \\ au lieu de \. Je me suis encore fait avoir!!!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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