Bonjour tout le monde,
Impossible de retrouver comment tester qu'un variable ne contient QUE des chiffres ou qu'elle est numérique ?
Bonjour tout le monde,
Impossible de retrouver comment tester qu'un variable ne contient QUE des chiffres ou qu'elle est numérique ?
isNaN()
ou avec une regexp
integer ou float ? separateur decimal . ou , ?
Non uniquement les chiffres de 0 à 9
Pour être plus clair :
Il faut donc que je teste que la variable date ne contient QUE des chiffres...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 WDate = WFichier01.substr(5); WDate = WDate.substr(0, 8);caractères.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 alert(/^\d+$/.test('1356')) alert(/^\d+$/.test('135 6'))
Ho purée !!!
J'ai pas tout compris...
le mot magique est "expression régulière " ou regexp ...
??? Il n'apparait pas dans l'exemple que tu me donnes ?
(Ps : ça fonctionne impec, mais maintenant, je voudrai bien comprendre...)
les expressions regulières permettent de vérifier une chaine de caractères selon des modèles (patterns) et ce dans différents langages
une expression regulière en javascript s'ecrit entre / / ou se declare avec new RegExp()
dans le cas de figure qui nous concerne le pattern que l'on recherche est une suite de caractères numériques
on pourrait ecrire notre regexp comme ceci
qui se décompose comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part /^[0-9]+$/
/ ouverture de regexp
^debut de chaine
[0-9] n'importe quel chiffre entre 0 et 9
+ plusiers fois
$ fin de chaine
/ fin de regexp
dans l'exemple donné au dessus \d est un raccourci pour [0-9]
le expressions regulières peuvent etre utilisées en test, match, split, replace ...
test pour une concordance de la chaine
match pour relever les occurrence
split pour splitter sur un pattern
replace pour remplacer un pattern par une chaine ou un callback
et ce n'est que la partie émergée de l'iceberg ...
Donc, si j'ai bien compris :
peut-être remplacé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /^[0-9]+$/
C'est bien ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var WTest = new RegExp("^[0-9]+$"); if (WTest == true) { }; else { };
heu non ...
pour la declaration de regexp oui,
mais tu ne testes pas ni ne matches dans ton code !!!
<=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part alert(/^\d+$/.test('1356'))
=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var WTest=/^\d+$/ alert(WTest.test('1356'))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var WTest = new RegExp("^[0-9]+$"); alert(WTest.test('1356'))
MAIS je préfère declarer la regexp au moment du test pour eviter des soucis de pointeurs (cf le fameux une fois sur deux ...)
http://www.developpez.net/forums/d82...script/regexp/
en effet une regexp utilisé pour faire un test ou un match peut ne pas voir le pointeur réinitialisé en debut de chaine ... il faut alors entre deux tests réinitialiser le pointeur en faisant un test à vide par exemple
avant de faire un autre test
Code : Sélectionner tout - Visualiser dans une fenêtre à part WTest.test('')
ici en l'occurrence ayant un debut et fin de chaine ^ et $ le pointeur doit se réinitialiser après chaque test
@Bovino : c'est vu ça, SpaceFrog était juste entrain de me donner un petit cours particulier.
Bah, autant faire :
Non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 var WTest.test(''); WTest = new RegExp("^[0-9]+$"); if (WTest.test('1356') == true) { OK }; else { NOK };
si tu n'as à tester qu'une fois ...
sinon faut penser à reinitialiser le reg
A pÔ compris.
Tu corriges mon code ?
Si on considère que RegExp est la même chose que Reg.exec, c'est exactement ce que j'ai mis dans le code, non ?
(sauf que je fais la réinitialisation avant)
Oui ton code est correct...
je mets juste en garde sur l'utilisation successive de la reg sans la redeclarer ou la réinitialiser ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager