gpt4 book ai didi

javascript - 连字符分隔的 float 的正则表达式

转载 作者:行者123 更新时间:2023-11-30 14:16:39 25 4
gpt4 key购买 nike

在设计正则表达式以验证 Javascript 中连字符分隔的 float 方面需要一些帮助。到目前为止,我已经设法实现了这个正则表达式:

(^((\\d)+(\.[0-9]+)?)(\-)?((\\d)+(\.[0-9]+)?)$)|^(\\d+)$

它匹配以下内容:

1) 2
2) 2.10
3) 3.10-3.14

这个的问题是它也匹配错误的数字“3.103.310”。非常感谢解决此问题的任何帮助。

最佳答案

问题来自第一个替代方案,该方案将一个或多个数字与可选的小数部分 ((\d)+(\.[0-9]+)?) 匹配,然后匹配一个连字符和 1+ 位数字以及可选的小数部分。因此,允许有 2 个点。

你可以像这样修复模式:

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

参见 regex demo

详情

  • ^ - 字符串的开始
  • \d+ - 1+ 位
  • (?:\.\d+)? - 可选的非捕获组:
    • \. - 一个点
    • \d+ - 1+ 位
  • (?:-\d+(?:\.\d+)?)* - 匹配 0+ 次出现的非捕获组
    • - - 连字符
    • \d+(?:\.\d+)? - 1+ 位数字和 1 或 0 次 . 和 1+ 位数字
  • $ - 字符串结尾

关于javascript - 连字符分隔的 float 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53476992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com