我需要一个 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/