Quelqu'un d'assez fort en javascript sait il faire ???
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDernière intervention 2 novembre 2009
-
19 déc. 2008 à 12:04
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDerniè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
A voir également:
Quelqu'un d'assez fort en javascript sait il faire ???
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");
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 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 ???
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDerniè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.
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDerniè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 !
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 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,"é");
v1=v1.replace(/è/gi,"è");
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.
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDerniè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
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 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
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDernière intervention 2 novembre 2009 23 déc. 2008 à 11:08
Ouai, mais tu marque:
function verif(valeur)
{ var v1=valeur.replace(/é/gi,"é");
v1=v1.replace(/è/gi,"è");
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.
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDerniè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
AUZUR
Messages postés30Date d'inscriptionjeudi 18 décembre 2008StatutMembreDerniè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.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 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
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 23 déc. 2008 à 13:44
et quand tu auras le temps, regarde... adapte :
function verif(valeur)
{ var avant=["á","é","è","ê"];
var apres=["á","é","è","ê"];
var v1=valeur;
for ( var n=0; nmon Site][M'écrire]Bul