begin process at 2012 05 29 05:50:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

expressions régulières, fonction replace


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

expressions régulières, fonction replace

jeudi 16 février 2006 à 04:29:20 | expressions régulières, fonction replace

sapakus

Bonjour,

Voili voilou : je veux enlever les zéros au début d'une chaine de caractères et garder le reste, et ce en utilisant les expressions régulières avec la fonction replace. La chaine n'est composée que de chiffres et n'a pas forcément de zéro(s*) au début, exemples : "01","164","000406","0123"........


voici mon code :

var chaichaine="0123456";
var espression=/^(0*)?([1-9][0-9]*)$/;
chaichaine.replace(espression,"$2");
alert(chaichaine);

et la fenêtre m'affiche : 0123456

Pourquoi ?

Merci de vos réponses.

Sapakus
jeudi 16 février 2006 à 07:37:58 | Re : expressions régulières, fonction replace

bultez

Membre Club

Bonjour,
   zone.replace(/(^0*)/g,"");
ça ne sert que pour la présentation, non ?
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

jeudi 16 février 2006 à 22:19:21 | Re : expressions régulières, fonction replace

sapakus

J'ai essayé avec ton code mais j'obtiens toujours 0123456.

La raison de tout ceci est :
dans un champs de formulaire, l'utilisateur doit rentrer un nombre qui doit s'additionner à un autre nombre indiqué en dessous. Or, pour que les chiffres s'alignent correctement (à droite) et ce quelque soit le nombre de chiffres saisi, je suis obligé de changer le sens de l'écriture en rtl par css.
Ensuite, intervient une fonction de controle sur le champs de saisie déclenchée par onkeyup, qui va vérifier ce qui a été saisi et qui va en cas de "mauvais caractère" vider le champs, c'est bien légitime.
Ensuite cette fonction effectue la somme des deux nombres. Et c'est à ce moment que tout dérappe !
Si le nombre saisi ne commence pas par un zéro tout va bien. En revanche si l'internaute imprudent glisse un ou plusieurs zéros devant la fonction eval ne considére plus la saisie comme un entier naturel et la somme devient fausse ! Avouez que c'est tout de même très embarrassant, exemple : 011+500=509 !
Si j'arrive à supprimer les zéros à gauche, je solutionnerai donc le problème et j'améliorerai la présentation du même coup.

Sapakus
jeudi 16 février 2006 à 22:46:55 | Re : expressions régulières, fonction replace

sapakus

Visiblement eval() se met mystèrieusement à compter en base 8. ???
011+500=509
0111+500=573

Bien sur si je fait 0219+500  j'obtiens bien 719, là il ne peut plus faire le malin !

Sapakus
vendredi 17 février 2006 à 04:22:23 | Re : expressions régulières, fonction replace

sapakus

Réponse acceptée !
ça y est j'ai trouvé l'erreur !

Elle est du à la mauvaise utilisation de la méthode replace qui ne transforme pas une chaine de caractères, mais renvoie une chaine de caractères transformée. Donc voici le code correct avec la regex de Bultez en prime :

var chaichaine="0123456";
var espression=/(^0*)/g;
chaichaine=chaichaine.replace(espression,"");
alert(chaichaine);

La cause de tous mes maux étaient à la ligne 3.

Merci à Bultez, et à moi, ne l'oublions pas.

Sapakus
vendredi 17 février 2006 à 06:30:14 | Re : expressions régulières, fonction replace

bultez

Membre Club
Réponse acceptée !

>>Si le nombre saisi ne commence pas par un zéro tout va bien
oui, oui : utiliser parseInt(valeur,10)
sinon, si valeur commence par 0 => Octal !
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~



Cette discussion est classée dans : fonction, replace, expressions, régulières, chaichaine


Répondre à ce message

Sujets en rapport avec ce message

guillemets et expressions régulières ??? [ par CoChOnOu ] hello à tous, voilà j'ai un petit prob avec une expression régulière. En effet, dans mon masque il faut que j'utilise comme point de repère des guille expressions régulières [ par eax ] salut!juste une petite question sur les expression régulières:comment on fait pour les espaces et les caractères accentués (sans avoir à les taper un Expressions régulières [ par fabiano13 ] Bonjour,Je cherche à supprimer, grâce aux expressions régulières, toutes les balises (BBCode) sélectionnées ![b]texte..[/b] [u]texte..[/u] [align=left problème avec fonction replace [ par brian85 ] Bonjour,j'ai un petit souci sur une fonction js à qui je demande de remplacer dans un champ hidden une valeur d'id il la match mais il ne remplace pas Expressions régulières [ par koalyptus ] Bonjour, n'étant pas très à l'aise avec les RegExp je voudrais savoir comment faire pour trouver une occurrence exacte d'un mot dans une chaîne. Je m Fonction replace sur mots-cles dans le code HTML ? [ par Lomendil ] Bonjour,Je suis actuellement en train de construire un code afin de pouvoir traiter le code HTML d'une page et, eventuellement, de remplacer certaines fonction replace() et code ISO [ par lddsoft ] Bonjour,Cela va faire un bon bout de temps que je galère et que je cherche sur le web, mais je ne trouve pas de réponse à mon problème. Il peut paraît Fonction replace pour remplacer les plus "+" dans variable url [ par hdh ] Bonjour, Je sue sur une fonction javascript qui remplacerait les signes "+" en "espaces" (pour les afficher dans ma page en javascript) En effet mon fonction replace pour émuler caps lock [ par maelob ] Bonjour a tous,Mon probleme est a peu près le meme que celui de ce sujethttp://www.javascriptfr.com/infomsg_SAVOIR-SI-TOUCHE-MAJ-EST-ACTIVE_685110.asp Fonction AJAX sous Firefox [ par whostheboss2 ] Bonjour à tous, je voudrais avoir votre aide concernant un problème que j'ai rencontré lors d'un appel de fonction dans un fichier AJAX à l'aide d'un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,172 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales