je cherche à réaliser une expression régulière d'un age entre 18 et 100, si vous avez des suggestions, je serai reconnaissante.
MErci
je cherche à réaliser une expression régulière d'un age entre 18 et 100, si vous avez des suggestions, je serai reconnaissante.
MErci
Bonjour,
une expression régulière? vraiment?
je pense que c'est ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ^(1[8-9]|[2-9][0-9]|100$)
Ben oui, difficile de faire mieux...;
Par contre, tes parenthèses sont mal placées et vont autoriser "20 ans, c'est jeune.";
Donc
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part console.log(/^([2-9]\d|1[8-9]|100)$/.test(nombre);
ou sans regexp
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part console.log(nombre>17 && nombre<101);
Ah oui tiens, c'est pas bête...
D'un autre côté, on a le droit d'avoir 18 ans et 3 mois![]()
oui mais du coup on gère comment les dodécacimales ?
sinon autre version de la reg
Code : Sélectionner tout - Visualiser dans une fenêtre à part ^(1((8|9)|00))|[2-9]\d$
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 !
Non Non c'est bon ...
https://jsfiddle.net/g0fjepw8/
plutot un souci de debut / fin
Code : Sélectionner tout - Visualiser dans une fenêtre à part reg=/^(1([89]|0{2})))$|^([2-9]\d)$/;
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 !
Blog
Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
(Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)
ou
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part reg=/^(1((8|9)|00)|[2-9]\d)$/;
Oui, c'est un peu chaud avec un seul champ;
Je n'ai pas réussi à rendre optionnelle la partie décimale dans la regexp (là, je suis obligé de répéter la partie entière)
Code html : 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 <!DOCTYPE html> <html> <head> <meta charset="iso-8859-1" /> <title>...</title> </head> <body> <div> <label id="lab" for="age">Quel âge avez-vous (entre 18 et 100 ans)? Insérez un tiret si vous précisez les mois. </label> <input type="text" size="2"id="age" /> </div> <script> document.getElementById("age").addEventListener("change",(e)=>{ const val=e.target.value; if(/^((1((8|9)|00)|[2-9]\d)|((1(8|9)|[2-9]\d)-(\d|1[0-1])))$/.test(val)){ const mois=val==parseInt(val)?".": ` et ${val.substring(3)} mois.`; document.getElementById("lab").innerHTML=`Vous avez ${parseInt(val)} ans${mois}` } else{ document.getElementById("lab").innerHTML="Quel âge avez-vous (entre 18 et 100 ans)? Insérez un tiret si vous précisez les mois." } },false) </script> </body> </html>
Ah si... j'oublie les bases
Mais moins pratique, tu meurs
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(/^(1((8|9)|00)|[2-9]\d)(-(\d|1[0-1]))?$/.test(val)){ const mois=val==parseInt(val)?".": ` et ${val.substring(val.indexOf("-")+1)} mois.`;
http://javatwist.imingo.net/howold.htm
Bonjour,
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part <input type="number" name="age" step="1" min="18" max="100" value="" placeholder="entre 18 et 100" />
Ensuite, je ne vois pas trop l'intérêt d'une regex... à part "faire parler les curieux"... !![]()
Dernière modification par ProgElecT ; 21/11/2019 à 11h57.
Oui c'est très insolite; petite amélioration logique quand même:
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 document.getElementById("age").addEventListener("change",(e)=>{ let val=e.target.value; if(/^(1(8|9)|[2-9]\d)(-([1-9]|1[0-2]))?$/.test(val)){ let mois= val==parseInt(val) ? "." : ` et ${val.substring(3)} mois.`; if(val.substring(3)==12){val=parseInt(val)+1;mois=""} document.getElementById("lab").innerHTML=`Vous avez ${parseInt(val)} ans${mois}` } else{ document.getElementById("lab").innerHTML="Quel âge avez-vous (entre 18 et 100 ans)? Insérez un tiret si vous précisez les mois." } },false)
Oui, mais dans ce cas, autant demander l'année et le mois de naissance (ou la date complète JJ/MM/AAAA).
Tout le monde est (normalement) capable de le donner sans réfléchir... et ça ne change pas avec le temps !
Ce ne sont pas les scripts qui manquent :"javascript calculer âge date naissance".
Mais bon... ce n'est pas le sujet de cette discussion, par ailleurs "résolue".
On est d'accord. C'est juste le côté incongru de la démarche qui m'a amusé.
Partager