Quelqu'un d'assez fort en javascript sait il faire ???

AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009 - 19 déc. 2008 à 12:04
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 23 déc. 2008 à 13:44
Bonjour tout le monde, voila je débute en javascript, et je dois développer une fonction pour mon entreprise, qui doit gérer les caractères spéciaux. Je m'explique:
J'ai créer une page HTML sur laquelle je rentre le nom d'un fournisseur, et c'est la que ma fonction JS rentre en jeu. Dans ce champ ou je rentre le nom de mon fournisseur il y a parfois des caractères spéciaux. La je dois créer une fonction qui vérifierait si dans le nom, il y a des caractères spéciaux, et si il y en a il faut que la fonction remplace c'est caractères spéciaux par le code associé. Voila j'espère avoir été assez clair et j'espère avoir une réponse. Merci d'avance

38 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 15:56
le format c'est ( sans regexp, mais même principe )

résultat = le_texte_original.replace
(/caractères_à_remplacer/,"caractères_de_remplacement");

si tu mets toto.replace(/a,i,e/gi,"titi")
ça recherche dans toto "a,i,e" ( majuscules et minuscules )
et remplace par "titi"
ça ne remplace pas "a" par "titi", "i" par "titi", "e" par titi
ça remplace "a,e,i" par "titi"

exemple :

alert( "a,e,i a e i".replace(/a,e,i/gi,"xxx")) ===> xxx a e i

alert( "a,e,i a e i".replace(/a/gi,"xxx")) ===> xxx,e,i xxx e i

c'est plus clair ?

>>cela ne marche que pour un seul attribut.
si par attribut tu entends la 1er paramètre du replace
( entre les / ), on peut dire oui, certes.
mais tu as parfaitement le droit d'en faire plusieurs !

var avant="a,e,i a e i";
var apres=avant.replace(/a/gi,"xxx");
apres=avant.replace(/e/gi,"yyy");
apres=avant.replace(/i/gi,"zzz");

alert(apres) ===> xxx,yyy,zzz xxx yyy zzz

@+
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 15:58
il fallait lire :
mais tu as parfaitement le droit d'en faire plusieurs !

var avant="a,e,i a e i";
var apres=avant.replace(/a/gi,"xxx");
apres=apres.replace(/e/gi,"yyy");
apres=apres.replace(/i/gi,"zzz");

alert(apres) ===> xxx,yyy,zzz xxx yyy zzz
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
22 déc. 2008 à 16:12
citation:
si tu mets toto.replace(/a,i,e/gi,"titi")

ça recherche dans toto "a,i,e"  ( majuscules et minuscules )

et remplace par "titi"

ça ne remplace pas "a" par "titi",  "i" par "titi", "e" par titi

ça remplace "a,e,i" par "titi"

Donc si je suit ton example, et que wje remplace toto par babar, a la fin cela nous donneraient:

Btitibtitir ???
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 16:34
toto c'est une variable, un champ de saisie, ce que tu veux mais pas une chaîne de caractères
var avant="a,e,i a e i";

var apres=avant.replace(/a/gi,"xxx");

apres=apres.replace(/e/gi,"yyy");

apres=apres.replace(/i/gi,"zzz");

>>Btitibtitir ???
mon foie... je ne vois pas d'où tout cela pourrait venir ???
dans ce qui est en rouge, au dessus :
tu mets quoi dans avant ? et tu remplaces quoi par quoi ???

          [mon Site] [M'écrire] Bul         
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
22 déc. 2008 à 16:48
var avant="a,e,i a e i";
var apres=avant.replace(/a/gi,"xxx");
apres=apres.replace(/e/gi,"yyy");
apres=apres.replace(/i/gi,"zzz");



var avant="a,e,i a e i";

var apres=avant.replace(/a/gi,"xxx");

apres=avant.replace(/e/gi,"yyy");

apres=avant.replace(/i/gi,"zzz");

Avant d'aller plus loin lequel est le bon ?

Je viens de relire le tout donc je crois comprendre que, par exemple, pour mon cas:

var caractere="&,ï,...";
var code=caractere.replace(/&/gi,"&")
       code=caractere.replace(/ï/gi, "&4158;")
...

NO ??
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 déc. 2008 à 17:46
bon... je m'a gouré dans le 1er exemple... mais j'ai rectifié !

tu t'as gouré dans le tien, ja va (script) rectifier ;o)

var caractere="&,ï,...";
var code=caractere.replace(/&/gi,"&")
code=code.replace(/ï/gi, "&4158;")     sinon les & seront perdus

         [mon Site] [M'écrire] Bul   
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
22 déc. 2008 à 17:55
Ok pas de prob j'avais pris comme example ta boulette!
Donc la tu me dis que ma fonction est bonne !
je vais travailler un peut sur ma page de code et je mets tout mon code demain.
Voila merci bonne soirée.
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
23 déc. 2008 à 09:49
Bonjour tout le monde !
Donc je vous mets ce a quoi j'ai réfléchi et cela donne ça:

function verif(valeur)
{

 char_spec = new Array("é","è"); // Tableau des caractères spéciaux
 remplace = new Array("é","è"); // Tableau des codes correspondant
 nouv = new Array(); // Un tableau pour accueillir les caractères transformés si besoin

    for(i=0;i<valeur.length;i++)
    {
        nouv[i] = valeur[i]; // On recopie chaque caractère dans la chaîne de sortie
         for(j=0;j<char_spec.length;j++)
         {
            if(valeur[i]==char_spec[j])  // Si le caractère est un caractère spécial...
             {
                nouv[i] = remplace[j]; // ...alors on le remplace.
             }
         }
    }

  nouv = nouv.join(""); // On recrée la chaîne à partir du tableau de caractères

  return nouv;
}

Merci de m'indiquer si tout est bon !!!
Bonne journée !
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 10:24
bah... tu te compliques la vie...
pourquoi une boucle, un array, un test et une expression régulière ?

function verif(valeur)
{    var v1=valeur.replace(/é/gi,"&eacute;");
     v1=v1.replace(/è/gi,"&egrave;");
     return v1;
}
    alert(verif("exemple dé dès et autres..."));

maintenant, bien entendu, plutôt que 'n' replace... on peut faire une boucle !
mais : sur les caractères à remplacer !   pour ça regarde/utilise RegExp
c'est ce que je ferais, tu devrais y parvenir.

          [mon Site] [M'écrire] Bul         
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
23 déc. 2008 à 10:49
Ouai daccord avec toi bul3, mais j'ai (quand même) 668 caractère spéciaux à vérifier. Donc si je dois mettre un replace pour chaque caractère, j'ai pas fini. Nan?
Après peut être qu'une boucle est possible mais je vois pas trop comment.
Voili voilou, merci pour ton aide Bul3
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 10:55
>>Après peut être qu'une boucle est possible
oui.
for sur la table de caractères à remplacer dans un Array, et utilise regExp.
          [mon Site] [M'écrire] Bul         
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
23 déc. 2008 à 11:08
Ouai, mais tu marque:

function verif(valeur)
{    var v1=valeur.replace(/é/gi,"&eacute;");
     v1=v1.replace(/è/gi,"&egrave;");
     return v1;
}
    alert(verif("exemple dé dès et autres..."));

Et le problème est que je veux pas que ma fonction me renvoie un alert, je veux juste qu'elle vérifie mais caractères et quel les remplaces pour les code asssociés. C'est a dire :
Je crée une page,
je crée sur cette page un champs de saisie,
un bouton valide,
et en dessous de la saisie afficher ce qui a été rentré.

Et ma fonction elle doit remplacer les caractères spéciaux par leur code associé pour ne pas avoir de ? partout.

Je sais pas si je suis trop clair mais j'essaye de faire du mieux que je peux.

Voila.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 11:26
la fonction ne renvoie pas un alert ???!!!??? elle retourne le résultat du changement !
c'est pour l'essai dans l'appel que l'alert est fait.

>>>>pour ne pas avoir de ? partout.
ça j'ai déjà dit que c'était inutile à quoi tu répondis : c'est pour faire autre chose

Cordialement[mon Site][M'écrire]Bul
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
23 déc. 2008 à 11:49
Oui Ok mais le "alert" retourne effectivement le résultat du changement, mais dans une petite fenêtre, alors que ce n'est pas ca que je veux.
Ce qu'il me faut, c'est juste la vérif, c'est pour ca que je pense que mon code que j'ai fait peut marcher correctement
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 12:10
et alors ? change l'alert de l'appel par ce que tu veux
(  mettre le résultat dans la zone de saisie, par exemple ... )
          [mon Site] [M'écrire] Bul         
0
AUZUR Messages postés 30 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 2 novembre 2009
23 déc. 2008 à 12:39
Bon je pense que je vais rester sur mon code de départ.
Car je vien de le tester et il me convient parfaitement pour ce que je dois faire. Voila et je xpense que c'est préférable que je garde une chose que je comprend plutôt que d'essayer de faire quelque chose qui va me prendre le choux pendant 3 jours et qui a l'arrive ne fonctionnera pas ou fonctionnera mais ou je n'aurais peut être pas tous compris. Voila, mais je te remerci pour tes précieux conseil Bul3, car il m'ont permis de chercher des choses et de les comprendre(même si je pense que je n'est pas tout compris) et d'avancer un peu plus dans la connaissance du language JS.
Merci pour tout.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 13:16
>>...préférable que je garde une chose que je comprend ...
c'est sûr ! tout à fait d'accord.
>>..essayer de faire...
ça viendra plus tard avec un ch'tiot poil "d'expérience" en plus
          [mon Site] [M'écrire] Bul         
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
23 déc. 2008 à 13:44
et quand tu auras le temps, regarde... adapte :

function verif(valeur)
{   var avant=["á","é","è","ê"];
    var apres=["&aacute;","&eacute;","&egrave;","&ecirc;"];
    var v1=valeur;
    for ( var n=0; nmon Site][M'écrire]Bul
0
Rejoignez-nous