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 :

Utilisation Expression Régulière


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut Utilisation Expression Régulière
    Bonjour,

    J'ai besoin de vérifier qu'une string ne contienne QUE des caractères autorisés. Et donc, d'une fonction me retournant une erreur en cas d'utilisation d'un caractère non autorisé.

    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function formValidation() {
      var checkStr = document.ao_form.free_text.value;
      var reg = /([^a-zA-Z])/g
     
      if (reg.test (checkStr)) {
        alert ("Attention, contains non permitted characters");
        return (false);
      }
      return (true);
    }
    Mais bon, ça ne marche pas ! Que dois-je corriger ? Je ne suis pas bien certain d'avoir compris comment utiliser les Expressions Régulières

    Merci !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Attention tu ne cherches qu'une correspondance !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /([^a-zA-Z])+/g
    Pour chercher 1 correspondance ou plus.
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /([^a-zA-Z])/
    pour stopper la recherche à la première correspondance trouvée.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Il me semble aussi que les parenthèses n'apportent rien ici, puisqu'on ne récupère pas de portions particulières de l'expression testée après comparaison.
    (Tiens d'ailleurs il y a d'autres parenthèses non nécessaires autour des valeurs true et false.... tu ne serais pas un développeur LISP par hasard ?

    Quand tu dis que ça ne marche pas : quel est le problème exactement ?
    La fonction accède-t-elle bien au champ texte, déjà ?

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    On peut assortir la classe d'exclusion de + ou * ...
    le parethèses peuvent éventuellement servir pour un backreference ou pour un $ dans un replace ...
    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 !

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 46
    Par défaut
    un petit gi pour le rendre insensible à la casse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function formValidation() {
      var checkStr = document.ao_form.free_text.value.toString();
      var reg = /([^a-z])/gi
     
      if (reg.test(checkStr)) {
        alert ("Attention, contains non permitted characters");
        return (false);
      }
      return (true);
    }
    Saray

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Merci à tous pour vos réponses / conseils, ça m'a permis d'avoir quelque chose qui tourne !
    Bon, maintenant le problème est de permettre l'utilisation de certains charactères (pas seulement alphabétiques), y compris LF et CR. Et c'est là que je bloque

    Voici donc mon code, il faut aussi permettre les LF et CR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function formValidation() {
      var checkStr = document.ao_form.free_text.value.toString();
      var reg = /[^a-z ()+,=?./:-]/gi
     
      if (reg.test(checkStr)) {
        alert ("Attention, contains non permitted characters");
        return false;
      }
      return true;
    }
    Je serais très reconnaissant à qui peut m'aider !

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Je veux autoriser certain caractères ... les autres étant par définition non autorisés

    Bon, je crois avoir trouvé entre-temps (bien poser la question est déjà à moitié y répondre ...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /[^a-z ()+,=?./:-\b\r\f\n\t]/gi
    J'y ai tout mis, pê un peu trop (normalement c'est juste LF et CR qui devraient être autorisés)

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Bon, eh bien c'est pas ça du tout ...
    Après avoir consulté différents exemples, j'ai tenté ceci, qui semble mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /[^a-z ()+,=?./:-]+[^\.-]?\r+/gi
    Est-ce que ça vous semble correct ?

  9. #9
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Bon, ça ne fonctionne pas ...
    Il accepte le retour chariot, mais maintenant, accepte aussi les caractères spéciaux si ils sont suivis d'autre chose (caractère ou CR)

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Duracell2 Voir le message
    Je veux autoriser certain caractères ...
    Il accepte le retour chariot, mais maintenant, accepte aussi les caractères spéciaux si ils sont suivis d'autre chose (caractère ou CR)
    Donc c'est bon.

    Tant que tu ne dis pas explicitement quels caractères, on peut considérer ton problème comme résolu.

    A+

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Si tu veux permettre le retour chariot, ça pourrait être utile d'activer le mode multiligne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /[^a-z ()+,=?./:-]+[^\.-]?\r+/mgi
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    Donc c'est bon.

    Tant que tu ne dis pas explicitement quels caractères, on peut considérer ton problème comme résolu.

    A+
    ???

    Je dois accepter les caractères a->z, A->Z, 0->9,ainsi que "(" ")" "," "=" "?" "." "/" ":" "-" , espace, lf, cr. Si un autre caractère que ceux là est présent, je dois retourner false.

    Avec ceci , j'accepte tout cela sauf lf & cr (retour chariot).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /[^a-z ()+,=?./:-]/mgi
    J'ai essayé d'ajouter afin d'accepter également le retour chariot, mais ça ne fonctionne pas : il accepte bien le retour chariot, mais accepte aussi d'autre caractères non explicitement autorisés.

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Citation Envoyé par Duracell2 Voir le message
    un caractère non autorisé.!
    Citation Envoyé par Duracell2 Voir le message
    permettre l'utilisation de certains charactères (pas seulement alphabétiques), y compris LF et CR
    bon, ça suffit, maintenant, tu dis ce que tu veux autoriser et on t'aidera!

Discussions similaires

  1. [RegEx] Utiliser une expression régulière dans une requête
    Par Tobleron dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2007, 19h00
  2. [RegEx] Expressions régulières utilisation de "ereg"
    Par jojo33bx dans le forum Langage
    Réponses: 10
    Dernier message: 10/12/2006, 21h46
  3. Réponses: 5
    Dernier message: 20/09/2006, 13h16
  4. Utilisation d'expression régulière
    Par red210 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 16/04/2005, 16h45
  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