bonjour,

je cherche à tester si un input contient des nombres (positifs, négatifs, entiers, ou décimaux). J'utilise donc une expression régulière :

Code : 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
 
<html>
<head>
<title></title>
 
<script type="text/javascript">
<!--
function TestValeur()
{
 var valeur = document.getElementById("idNB").value;
 var ExpNb = /(^\-?[0-9]+$)|(^\-?[0-9]+\.[0-9]+$)/g;
 
 document.getElementById("idRep").value = ExpNb.test(valeur);
 
}
 
//-->
</script>
 
</head>
 
<body>
 
<input type="button" value="Bouton" id="BNom" onclick="TestValeur()">
<input type="text" value="" id="idNB" size="20" maxlength="10">
<input type="text" value="" id="idRep" size="20" maxlength="10">
 
</body>
</html>
Je pense mon expression régulière juste. Sous IE, je n'ai pas de souci. Par contre sous Firefox :
-entrez un nombre dans "idNB"
-cliquez une 1ère fois sur le bouton > la valeur true apparaît dans l'input "idRep"
-cliquez une 2nde fois sur le bouton (sans changer la valeur )> la valeur false apparaît dans l'input

Par contre, si je tape autre chose qu'un nombre, le résultat est toujours false.

Quelqu'un a une explication ? Est-ce firefox (1.0) ou mon expression régulière ?