正则表达式只接受正数和小数

Ric*_*233 9 javascript regex

我需要一个javascript中的正则表达式,它只接受正数和小数.这就是我所拥有的,但有些事情是错误的 - 它似乎没有单个正数.

/^[-]?[0-9]+[\.]?[0-9]+$/;
Run Code Online (Sandbox Code Playgroud)

例如,9不起作用.我怎样才能对其进行重组,如果至少有一个正数,它会起作用?

Mik*_*uel 22

/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/
Run Code Online (Sandbox Code Playgroud)

火柴

0
+0
1.
1.5
.5
Run Code Online (Sandbox Code Playgroud)

但不是

.
1..5
1.2.3
-1
Run Code Online (Sandbox Code Playgroud)

编辑:

要处理科学记数法(1e6),您可能想要这样做

/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/
Run Code Online (Sandbox Code Playgroud)

如果你想要严格的正数,没有零,你可以做到

/^[+]?([1-9][0-9]*(?:[\.][0-9]*)?|0*\.0*[1-9][0-9]*)(?:[eE][+-][0-9]+)?$/
Run Code Online (Sandbox Code Playgroud)