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 de Replace() avec la HTML textbox.value


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par d�faut Utilisation de Replace() avec la HTML textbox.value
    Bonjour � tous. Ma premi�re tentative � utiliser ce forum alors j'esp�re �tre dans le bon endroit pour cette question.

    Voici les trois fonctions que j'utilise mais je n'arrive pas � faire un replace() des caract�res avec accents. Pourtant les fonctions replace fonctionnent si j'assigne directement une cha�ne lit�rale � chaine dans la fonction noaccent().

    Voici le code:
    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
    30
    31
    32
     
    function validation() {
                 // la valeur du textbox HTML nommé: nom
    	var txtValue = document.getElementById("nom").value;
    	if (isValidNameType(txtValue) == false) {
    		showError(document.getElementById("errnom"), STR_ERR_INVALID_NAME, "errlabelon");
    		valid = false;
    	}
    	return valid;
    }
     
    function isValidNameType(txtToVerify) {
    	var regex = new RegExp("[^a-zA-Z \-]+", "g");
    	var tempText = noaccent(txtToVerify);
    	// Je renvoi l'inverse du résultat car celui-ci défini si on a
    	// trouver des caractères illicites rendant la chaîne invalide.
    	return (regex.test(tempText) == false)
    }
     
    function noaccent(chaine) {
        var temp = chaine.replace(/[àâä]/g, "a");
        temp = temp.replace(/[éèêë]/g, "e");
        temp = temp.replace(/[îï]/g, "i");
        temp = temp.replace(/[ôö]/g, "o");
        temp = temp.replace(/[ùûü]/g, "u");
        temp = temp.replace(/[ÀÂÄ]/g, "A");
        temp = temp.replace(/[ÉÈÊË]/g, "E");
        temp = temp.replace(/[ÎÏ]/g, "I");
        temp = temp.replace(/[ÔÖ]/g, "O");
        temp = temp.replace(/[ÙÛÜ]/g, "U");
        return temp;
    }
    Est-ce que le probl�me pourrait venir du transfert de la cha�ne parmis les trois fonctions? J'ai essayer plusieurs alternatives mais rien n'y va.
    J'admet �tre un peu nouveau pour ce qui est du javascript. Merci d'avance � qui pourra y voir claire !

  2. #2
    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
    cela peut provenir du fait que l replace pr�c�dent n'est pas termin� lors du replace suivant ...

    regarde plutot de code avec une boucle while ...

    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
    <script type='text/javascript'>
    var chaine ='àâäéèêëïïöôûüù';
    function RemoveAccents(Texte){
    var Accents = 'àâäéèêëïïöôûüù';
    var NoAccen = 'aaaeeeeiioouuu';
     
    Accents = Accents.split('');
    NoAccen = NoAccen.split('');
    var i=0;
    while(Accents[i]){
    					var Reg=new RegExp(Accents[i],'gi');
                     Texte=Texte.replace(Reg,NoAccen[i]);
                     i++
                     }
    return Texte;
    }                  					
     
    alert(RemoveAccents(chaine))
    </script>
    � toi d'adapter pour la liste des caract�res � remplacer ..
    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 !

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par d�faut
    Merci beaucoup SpaceFrog de ta r�ponse.
    J'ai essay� ta fonction au lieu de la mienne et m�me probl�me !

    J'ai fait une page nouvelle qui ne contenait que mes fonctions et une autre avec les tiennes et les deux fonctionnent. C'est � n'y rien comprendre !

    Ce doit �tre une question d'�rreur dans ma programmation. Ma logique doit me faire d�faut quelque part dans mon utilisation de textbox.value. Pourtant, isol�, les fonctions marchent comme il se doit quand ils sont dans la m�me page que mon HTML et non en externe. hmmmm....

    Je te tien au courrant si je trouve quelque chose. Merci encore de t'y avoir frott�.

    M�o

    P.S.: J'y reviens. J'ai rendu les fonctions qui marchaient sur la page HTML sur un fichier externe et voil� !... le probl�me est revenu. Alors c'est d�finitivement l� o� il y a un probl�me. Je te le partage au cas ou cel� te dit quelque chose.

    Merci encore.

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par d�faut Voici la solution trouv�e.
    C'est un 'hack' pour l'instant mais je ne vois pas comment faire autrement. Au moins �a marche !

    J'ai essayer de mettre la fonction plus haut sur la page externe de JS mais cela n'a rien changer au probl�me.

    J'ai garder la fonction noaccent(chaine) dans une balise script sur la page HTML. Les deux autres fonctions restent sur la page externe. Ca marche.

    Je ne sais pas pourquoi ca marche mais au moins je r�ussit mes validations ainsi. Un jour proche, j'y regarderai de plus pr�s mais le projet est d� pour ce soir alors pour l'instant ce 'hack' me suffit.

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

Discussions similaires

  1. R�ponses: 0
    Dernier message: 20/07/2011, 15h57
  2. textbox.value ou textbox.text en combinaison avec DDL
    Par kssillati dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 26/05/2011, 18h44
  3. Utilisation de la fonction replace() avec une regexp
    Par Ishizaki dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 27/08/2009, 17h39
  4. [MYSQL] [d�butant] utiliser replace avec mysql.pas
    Par alex01pernot dans le forum Bases de donn�es
    R�ponses: 2
    Dernier message: 30/08/2006, 21h23
  5. [ANT] Utiliser "<replace>" avec un joker
    Par blinkz0rz dans le forum ANT
    R�ponses: 1
    Dernier message: 29/08/2006, 12h11

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