为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿晨1998 2023-09-07 18:24:45
我正在制作一个表单,其中有一个“利率”字段,可接受 0.01 到 99.00 之间的值我已经在正则表达式中查看了从 0.01 到 99.99 的RegEx Up 。这几乎就成功了。我遇到的唯一挑战是使其与 99.01 到 99.99 之间的数字不匹配。我已对其进行了更新,以适应小数点后最多 10 位数字。测试数据:只能匹配 0.01 到 99.00 之间的数字不应匹配00.00100.13423499.01234 // 这是匹配的,但不应与我当前的正则表达式匹配。100应该匹配0.010.101.2333.204.6555.11299.0099.0我已经创建了一个RegEx101 沙箱,我认为它可能有用。
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

在开头,添加 99 的否定前瞻,后跟除 之外的任何内容.00

(?!99\.0*[^0\n])

https://regex101.com/r/R63oyb/10

排除99.0199.10等等,但允许99.0099


查看完整回答
反对 回复 2023-09-07
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

这是我的方法:

^(?:(?![0.]+$|99)|(?=(?:99|99\.0+)$))\d{1,2}(?:\.\d+)?$

查看测试用例

  • \d{1,2}(?:\.\d+)?匹配 1-2 位数字(可选后跟小数点和一些数字)

  • (?:(?![0.]+$|99)|(?=(?:99|99\.0+)$))

    • (?![0.]+$|99)测试数字是否仅由0and.或 以 开头组成99,失败。这消除了099

    • |(?=(?:99|99\.0+)$)除非这个数字是纯数字99或者99后面跟着一个小数点和一串0s,否则就让它通过。


查看完整回答
反对 回复 2023-09-07
  • 2 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信