javascript - 如何在正则表达式中包含一次点作为最后一个字符?

标签 javascript regex

我正在尝试在 JavaScript 中制作正则表达式,匹配 1-100 之间的数字并包含两位小数。 需要包含在正则表达式中的示例数字:

1 1.1 1.15 0.5 100 100.00

需要排除的数字示例:

101 100.01 100.1 55.999

这是我目前的正则表达式:

^(?:100(?:\.00?)?|\d?\d(?:\.\d\d?)?)$

这也有效,但我还需要包含两个数字后跟一个小数或 100 后跟一个小数,如下所示:

14。 9. 100。

这是因为每次在输入字段中按下按钮时我都会运行正则表达式检查,即使当前正则表达式允许使用像 0.5 这样的数字,我也无法输入它,因为不允许使用 0. 。

最佳答案

您需要在此处使用两个单独的正则表达式,一个用于实时输入验证(正是您在问题中所描述的内容,这将让您输入允许的值),另一个用于最终的“提交时”验证(这将检查整个输入字符串的有效性)。 否则,您将无法输入 0.5 之类的值。

实时输入验证的正则表达式是:

/^(?:100(?:\.0?0?)?|\d\d?(?:\.\d?\d?)?)$/

参见this regex demo 。请注意 ? 量词如何使模式成为可选,尤其是 \. 模式之后的 \d0 。 p>

最终验证从 0.01100 的数字的正则表达式是

/^(?!0*(?:\.0*)?$)(?:100(?:\.00?)?|\d?\d?(?:\.\d\d?)?)$/

参见this regex demo .

关于javascript - 如何在正则表达式中包含一次点作为最后一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67402346/

相关文章:

javascript - Grunt,将 html 文件复制到构建时的脚本文件夹

javascript - 使用javascript将二进制数据下载到文件中

javascript - 从目录和子目录中获取数组中的所有图像

regex - 如何定义允许枚举值或模式匹配的模式限制?

regex - Grep 正则表达式不适用于方括号

javascript - 查找与视口(viewport)中元素的类匹配的html5数据属性

javascript - XUL 将事件附加到使用 javascript 添加的 anchor

python - 解析 METAR 字符串的温度

regex - 从文本文件中提取信息 block 并创建 Pandas 数据框并存储

java - 如何在java中使用正则表达式获取子字符串?