L'expression rationnelle qui correspond à des nombres positifs

J'ai besoin d'écrire une regex pour permettre uniquement un nombre positif ( entiers ou des nombres décimaux). J'ai trouvé ceci:

/^(?!(?:0|0\.0|0\.00)$)[+]?\d+(\.\d|\.\d[0-9])?$/  

mais il accepte jusqu'à 2 décimales. Quels sont les changements que j'ai à faire, de sorte qu'il peut accepter n'importe quel nombre de chiffres après la virgule?

Aussi où puis-je trouver un bon tutoriel pour l'apprentissage de la regex.

Merci d'avance

Est 04 un nombre positif? Note que c'est pas 04; les points de code différents. De même, est ¼ un nombre positif? Qu'en est 3⁴? Je crois que vous trouverez que 0⁴ n'est pas un nombre positif, encore 4⁰ est en réalité. Comment vous sentez-vous à propos de , ou ⅽ̄ en lieu et place de ? N'est-ce pas π un nombre positif? Saviez-vous que est un nombre positif, mais que est un nombre négatif? Avez-vous considéré comme"`?
La base de cas de test doivent minimalement être +2, 2, -2, 2., .2, 2.2, -2.2, +2.2 — puis à nouveau avec tous les deux tournés vers des zéros. La réponse vous l'avez accepté échoue sur certains de ceux-ci. Vous devriez également ajouter 6e23, 6e-23, et 0e23 à vos cas de test. Et nous n'avons pas considéré -1, ce qui est un cas intéressant.
double possible de l'Apprentissage des Expressions Régulières
Ce n'est vraiment pas le genre de chose que vous devriez faire avec regexes. Comme les différents compliqué réponses (et de leurs erreurs) illustrent. Pensez à l'extérieur de la boîte. Look pour une approche alternative.

OriginalL'auteur eddy | 2010-12-16