我需要javascript中的正则表达式,该正则表达式仅接受正数和小数。这就是我所拥有的,但是出了点问题–它似乎并不需要一个正数。

/^[-]?[0-9]+[\.]?[0-9]+$/;

例如,9将不起作用。我该如何重组它,以便如果至少有一个正数,它将起作用?

最佳答案

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

火柴
0
+0
1.
1.5
.5

但不是
.
1..5
1.2.3
-1

编辑:

要处理科学计数法(1e6),您可能需要
/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/

如果您想要严格的正数而不是零,则可以
/^[+]?([1-9][0-9]*(?:[\.][0-9]*)?|0*\.0*[1-9][0-9]*)(?:[eE][+-][0-9]+)?$/

关于javascript - 正则表达式仅接受正数和小数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7708333/

10-11 22:40