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

标签 javascript regex

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

相关文章:

javascript - 将异步获取的数据传递给子 Prop

javascript - 我如何使用 jQuery 来确定点击事件是否在特定元素内触发?

php - 验证日期 dd/mm/yyyy

javascript - 使用 javascript 将井号标签分隔值替换为逗号分隔值

javascript - 绘制圆svg正交投影

javascript - Puppeteer 阻止元素在不 sleep /等待的情况下出现

javascript - (\/?) 在 regex/中的含义是 (\w+)([^>]*?) 冗余?

regex - 删除句点,而不是小数点

JavaScript:链接 URL,但从显示的链接文本中删除 'http://'

php - 正则表达式:删除白色字符