Validation des nombres décimal de javascript

J'utilise le regexp suivant pour valider les nombres dans mon fichier javascript:

var valid = (val.match(/^\d+$/)); 

Il fonctionne bien pour des nombres entiers comme 100, 200, etc., cependant pour des choses comme 1.44, 4.11, etc., il renvoie faux. Comment puis-je le modifier, donc les nombres avec une décimale sont-ils également acceptés?

 var valid = (val.match(/^\d+(?:\.\d+)?$/)); 

Allumettes:

  1 : yes 1.2: yes -1.2: no +1.2: no .2: no 1. : no 

 var valid = (val.match(/^-?\d+(?:\.\d+)?$/)); 

Allumettes:

  1 : yes 1.2: yes -1.2: yes +1.2: no .2: no 1. : no 

  var valid = (val.match(/^[-+]?\d+(?:\.\d+)?$/)); 

Allumettes:

  1 : yes 1.2: yes -1.2: yes +1.2: yes .2: no 1. : no 

 var valid = (val.match(/^[-+]?(?:\d*\.?\d+$/)); 

Allumettes:

  1 : yes 1.2: yes -1.2: yes +1.2: yes .2: yes 1. : no 

 var valid = (val.match(/^[-+]?(?:\d+\.?\d*|\.\d+)$/)); 

Allumettes:

  1 : yes 1.2: yes -1.2: yes +1.2: yes .2: yes 1. : yes 

essaye ça:

 ^[-+]?\d+(\.\d+)?$ 

IsNaN semble être une meilleure solution pour moi.

 > isNaN('1') false > isNaN('1a') true > isNaN('1.') false > isNaN('1.00') false > isNaN('1.03') false > isNaN('1.03a') true > isNaN('1.03.0') true 

Si vous souhaitez accepter des décimales (y compris <1) et des nombres entiers, avec des signes + ou – optionnels, vous pouvez utiliser valide = Numéro (val).

Ou un regexp:

 valid=/^[+\-]?(\.\d+|\d+(\.\d+)?)$/.test(val); 

! IsNaN (texte) && parseFloat (texte) == texte