javascript - 正则表达式允许 0 到 365 带小数,但 365 的所有小数位应仅为 0

标签 javascript regex

我正在尝试创建一个正则表达式,以允许从 0 到 365 以及可选的小数,但 365 应该将所有可选的小数数字仅设为 0。

^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-5][0-9])(\.\d+)|(36[0-5])(\.[0]+)?$

这仅接受 365 和 365 后跟小数(如 (365.0,365.00)),但仅接受小数 1.0、10.0,100.0,而不接受小数 1,10,100 不确定发生了什么。任何帮助将不胜感激。

最佳答案

使用(参见a demo on regex101.com)

^(?:\d|[1-9]\d|[12]\d{2}|3[0-5]\d|36[0-4]|365\.0*)(?:\.\d+)?$

或者(更好!):

^\d+(?:\.\d+)?$

然后以编程方式比较这些值。
后者可能是:

let data = `0.00
123.2121212
365.00
365.11
-1000
299
1000
365.1`;

let regex = /^\d+(?:\.\d+)?$/gm;
while (found = regex.exec(data)) {
    number = parseFloat(found[0]);
    if (number >= 0 && number <= 365) {
        console.log(number + " (" + found[0] + ")");
    }
}

关于javascript - 正则表达式允许 0 到 365 带小数,但 365 的所有小数位应仅为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55120884/

相关文章:

javascript - .addEventListener 不是 null 的属性

javascript - 如何在react js中插入多维数组数据?

javascript - 有没有办法引用当前函数?

javascript - 从 HTML 调用 Node 请求

javascript - 在 Bootstrap 中以编程方式更改选项卡 Pane 选项卡

MySQL 聚合报告

regex - sed 删除所有包含单词 password 的行。但不要保留空行

regex - WordPress 重定向插件不区分大小写的正则表达式

java - 正则表达式来识别包含特定符号的字符串?

regex - Swift - 将属性字符串添加到括号中的项目