猿问

JavaScript - 匹配 0.01 到 99 之间任何数字的正则表达式

我正在制作一个表单,其中有一个“利率”字段,可接受 0.01 到 99.00 之间的值

我已经在正则表达式中查看了从 0.01 到 99.99 的RegEx Up 。这几乎就成功了。我遇到的唯一挑战是使其与 99.01 到 99.99 之间的数字不匹配。

我已对其进行了更新,以适应小数点后最多 10 位数字。

测试数据:

只能匹配 0.01 到 99.00 之间的数字

不应匹配

  • 00.00

  • 100.134234

  • 99.01234 // 这是匹配的,但不应与我当前的正则表达式匹配。

  • 100

应该匹配

  • 0.01

  • 0.10

  • 1.233

  • 3.20

  • 4.655

  • 5.112

  • 99.00

  • 99.0

我已经创建了一个RegEx101 沙箱,我认为它可能有用。


阿晨1998
浏览 284回答 2
2回答

呼唤远方

在开头,添加 99 的否定前瞻,后跟除 之外的任何内容.00:(?!99\.0*[^0\n])https://regex101.com/r/R63oyb/10排除99.01和99.10等等,但允许99.00和99。

慕妹3242003

这是我的方法:^(?:(?![0.]+$|99)|(?=(?:99|99\.0+)$))\d{1,2}(?:\.\d+)?$查看测试用例\d{1,2}(?:\.\d+)?匹配 1-2 位数字(可选后跟小数点和一些数字)(?:(?![0.]+$|99)|(?=(?:99|99\.0+)$))(?![0.]+$|99)测试数字是否仅由0and.或 以 开头组成99,失败。这消除了0和99|(?=(?:99|99\.0+)$)除非这个数字是纯数字99或者99后面跟着一个小数点和一串0s,否则就让它通过。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答