Besoin d'aide

[Résolu]
Signaler
Messages postés
7
Date d'inscription
mercredi 2 juin 2010
Statut
Membre
Dernière intervention
13 juin 2013
-
Messages postés
33220
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
-
Bonjour,

J'espère que je suis sur le bon topic
J'ai besoin d'aide , je suis une formation en informatique (débutant) , je dois faire un programme en javascript qui m'affiche les entiers entre deux nombres saisis par un utilisateur
Cela fait 3 jours que je suis dessus et à force de chercher , de s'acharner, de changer encore et encore le code sans succès , je me suis perdue et j'ai tout mélanger, supprimer ...bref! J'ai foutu un bordel dans le code a rendre fou Einshtein
Serait il possible qu'une personne m'envoie le code du programme ou m'aide à re-frabriquer le code
S'il vous plait
Merci

6 réponses

Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
Et la même chose mais en plus condensé :
<!DOCTYPE html>
<html>
<head>
<title>pmc</title>
<meta charset="iso8859-1">
<script type="text/javascript">
String.prototype.before=function(s) {
      var aTmp=this.split(s);
      return(aTmp[0]);
}
var $=function(id) {
      return (typeof(id)=="string") ? document.getElementById(id) : id;
}
var verif=function() {
   var expReguliere=/[^0-9]+/g;
   $('resultat').innerHTML=parseInt($('nb1').value.before(".").replace(expReguliere, "")) +
                                          "
" +
                                          parseInt($('nb2').value.before(".").replace(expReguliere, ""));
   return false;
}
</script>
</head>

<form name="pm" onsubmit="javascript:return(verif())">
   
   
   
</form>





</html>


-------------------
Oderint dum metuant
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
355
Salut,

Je déplace vers le forum javascript
Messages postés
7
Date d'inscription
mercredi 2 juin 2010
Statut
Membre
Dernière intervention
13 juin 2013

Merci et désolée
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
Bonjour,

Le mieux est de faire des expressions régulières pour filtrer sur les chiffres de 0 à 9. Tout ce qui est saisi par l'utilisateur et qui ne correspond pas à ce critère doit être remplacé par le caractère vide ("")
Une fois ces caractères remplacés (donc tu auras que des entiers, tu force la récupération en entier pour éviter d'afficher "000012" (dans ce cas, il faut afficher "12") : utilise parseInt()

Exemple :

<!DOCTYPE html>
<html>
<head>
<title>pmc</title>
<meta charset="iso8859-1">
<script type="text/javascript">
//Fonction associée à toutes les chaines de caractères permettant de récupérer tout ce qui se trouve à gauche d'un caractère.
//Exemple :
//"123.456".before(".") retournera "123"
String.prototype.before=function(s) {
      var aTmp=this.split(s);
      return(aTmp[0]);
}
function verif() {
   //On récupère la valeur du champ "nb1". nb1 est ici une chaine de caractère
   var nb1=document.getElementById("nb1").value;
   //On récupère la valeur du champ "nb2". nb2 est ici une chaine de caractère
   var nb2=document.getElementById("nb2").value;
   //Expression régulière permettant de tester les caractères entre 0 et 9
   var expReguliere=/[^0-9]+/g;
   //On récupère le DIV de résultat
   var resultat=document.getElementById("resultat");

   //On récupère d'abord les chiffres situés à gauche de la virgule
   nb1=nb1.before(".");
   nb2=nb2.before(".");
   //nb1 est ici une chaine de caractère ne comportant que des chiffres de 0 à 9
   nb1=nb1.replace(expReguliere, "");
   nb2=nb2.replace(expReguliere, "");
   //Et on force en integer
   nb1=parseInt(nb1);
   nb2=parseInt(nb2);

   //On affiche le résultat dans la DIV "resultat"
   resultat.innerHTML=nb1+"
"+nb2;
   return false;
 }
</script>
</head>

<form name="pm" onsubmit="javascript:return(verif())">
   
   
   
</form>





</html>

-------------------
Oderint dum metuant
Messages postés
7
Date d'inscription
mercredi 2 juin 2010
Statut
Membre
Dernière intervention
13 juin 2013

Merci beaucoup pmcoste ! C'est très gentil !

On fait comment pour fermer ce topic ??? Puisque le problème est résolu
Messages postés
33220
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
351
Bonjour,

Je me permet de déterrer un sujet qui date (et qui, en plus est marqué en résolu)..
Mais en lisant la demande et la réponse je trouve qu'il y a un souci...

La demande était :
m'affiche les entiers entre deux nombres saisis par un utilisateur


j'en conclus donc qu'il faut afficher TOUS les entiers qui se trouvent entre deux nombres saisis par un utilisateur.
Par exemple :
Nombre1 = 23
Nombre2 = 27
Le résultat devrait être : 24,25,26

La fonction est alors :
var verif=function() {
   var expReguliere=/[^0-9]+/g;
   var listnb="";
   var nb_1 = (parseInt($('nb1').value.before(".").replace(expReguliere, "")));
   var nb_2=(parseInt($('nb2').value.before(".").replace(expReguliere, "")));
   for (var x=(nb_1+1); x < nb_2; x++){
listnb=listnb+"
"+x;
}
$('resultat').innerHTML=listnb;
  return false;
}


Bref, une simple boucle for entre les deux nombres donnés par l'utilisateur

(j'ai quand même gardé l'expression régulière de pmcoste vu que cela évite des erreurs de saisie.. même si en stage, je doute que vous l'ayez vu...)

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI