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 :

Erreur expression r�guli�re


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut Erreur expression r�guli�re
    Bonjour,

    J'utilise la fonction de "Modification "inline" de donn�es avec AJAX" d�taill� ici

    Elle fonctionne tr�s bien sauf lorsque j'ai un texte avec des ()

    Exemple :

    Assurance (divers)
    Lorsque je doubleclique sur ce texte, la zone s'ouvre pour la modification sans le texte.

    Dans la fonction inelineMod, j'ai contr�l� la valeur r�cup�r� en mettant des alert avant et apr�s la fonction de suppression des espaces, mais la valeur avant et apr�s est identique.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    //Assignation de la valeur
    	if (obj.innerText)
    		input.value = obj.innerText;
    	else
    		input.value = obj.textContent;
    	alert(input.value);	
    	input.value = trim(input.value);
    	alert(input.value);
    Lors de l'affichage des alert, le texte contient plein d'espace avant le 1er caract�re.

    Ce ph�nom�ne n'existe pas si je retire les ().

    Donc je me dis que c'est dans la r�cup�ration du texte que quelque chose ne va pas. c'est � dire sur :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    input.value = obj.textContent;
    Mais je ne vois pas pourquoi.

    Merci pour votre aide.

  2. #2
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Bon en continuant de creuser, c'est dans la fonction trim qu'il n'est pas content.

    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
    function trim(value) 
    {
       var temp = value;
       var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
       if (obj.test(temp)) 
       { 
    		temp = temp.replace(obj, '$2'); 
       }
       var obj = /  /g;
       while (temp.match(obj)) 
       {
    		temp = temp.replace(obj, " "); 
    	}
       return temp;
    }
    C'est clair que c'est les () qu'il n'aime pas. Donc ce doit �tre dans la d�finition de son expression reguliere :

    obj = /^(\s*)([\W\w]*)(\b\s*$)/;
    Lorsque j'ai des (), je passe dans la boucle
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    while (temp.match(obj)) 
       {
    		temp = temp.replace(obj, " "); 
    	}
    Mais il ne supprime pas les espaces.

  3. #3
    Membre �prouv� Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par d�faut
    Bon ben j'ai fait autrement

    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
    //Suppression des espaces/sauts de ligne inutiles (http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C0C0062AC78)
    String.prototype.trim = function ( )
    {
        var reg = new RegExp("(^\\s+)|(\\s+$)", "ig");
        return this.replace(reg, "");
    }
     
    String.prototype.trimAll = function ( )
    {
        var reg = new RegExp("([ 	]){2,}", "ig");
        return this.trim().replace(reg, "$1");
    }
    function trim(value) 
    {
       var temp = value.trim();
       var temp = temp.trimAll();
       return temp;
    }
    Et cela fonctionne bien

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [PHP 5.0] erreur de syntaxe avec une expression r�guli�res
    Par SpeedOverflow dans le forum Langage
    R�ponses: 2
    Dernier message: 20/01/2012, 12h48
  2. Expression r�guli�re avec une erreur
    Par sebnantes dans le forum VB.NET
    R�ponses: 5
    Dernier message: 08/11/2010, 21h54
  3. erreur dans l'expression r�guli�re ?
    Par Peanut dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 12/02/2009, 15h28
  4. R�ponses: 17
    Dernier message: 22/08/2008, 14h06
  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