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 :

regexp et crochets


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par défaut regexp et crochets
    Bonjour,

    J'ai un petit souci de syntaxe que je ne parviens pas à corriger, même après avoir fouillé sur le net ... (honte)

    Soit une fonction javascript pour une balise input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur="verif('^[0-9a-zA-Zéèàçêïö\'\n/\[\]!? -,]*$',this.value,'img2');">
    Le code javascript est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function verif(a,b, img)
    {
    	var reg=new RegExp(a,"g");
    	if(reg.test(b))
    	{
    		document.getElementById(img).src="http://localhost/bissi/design/images/input_icones/champ_in.png";
    	}
    	else
    	{
    		document.getElementById(img).src="http://localhost/bissi/design/images/input_icones/champ_off.png";
    	}
    }
    Mais dès que j'insère un crochet, reg.test me retourne false alors que je souhaite que les crochets soit acceptés!

    Merci pour la correction

  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
    Salut,

    En fait quand on utilise le constructeur de RegExp il faut échapper les caractères spéciaux. Dans le code suivant, les deux expressions sont équivalente :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
    <head>
       <title>expression rationnelle</title>
    	<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
       <style type="text/css">
     
       </style>
    </head>
    <body>
       <form name="f" method="post">
          <input id="i" name="i" type="text" value="i" />
          <button id="b" type="button" onclick="fn();">b</button>
       </form>
          <script type="text/javascript">
          function fn() {
             //var rgx = /^[0-9a-zA-Zéèàçêïö !-,\n\'\[\]\?\/]*$/;
             var rgx = new RegExp("^[0-9a-zA-Zéèàçêïö !-,\\n\\'\\[\\]\\?\\/]*$");
             if (rgx.test(document.getElementById("i").value)) alert("if");
             else alert("else");
          }
       </script>
    </body>
    </html>

  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 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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur="verif(/[0-9a-zA-Zéèàçêïö\'\n/\[\]!? -,]*$/g,this.value,'img2');">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function verif(a,b, img)
    {
     
    	if(a.test(b))

    testé comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var a=/[0-9a-zA-Zéèàçêïö\'\n/\[\]!? -,]/g;
    b="[]"
    function regtest(a,b){
    alert(a.test(b))
    }
     
    regtest(a,b)
    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
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par défaut
    ok

    Je vois mes erreurs !

    Merci beaucoup

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

Discussions similaires

  1. Regexp entre crochets
    Par Anduriel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/07/2009, 20h10
  2. [langage] [RegExp] Récupérer une portion de phrase
    Par GLDavid dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2004, 22h01
  3. [WebMacro] Les crochets s'invitent!
    Par Twofy dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 04/08/2004, 13h22
  4. [langage] [RegExp] Question d'expression régulière
    Par cloogy dans le forum Langage
    Réponses: 5
    Dernier message: 08/10/2003, 09h29
  5. regexp
    Par mathieu gérard dans le forum ASP
    Réponses: 4
    Dernier message: 02/10/2003, 18h05

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