You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Regex101测验第11题:合法浮点数格式校验正则问题求助

浮点数校验正则修正方案

问题原因

你当前使用的正则中\d*([.,]\d*)?部分允许小数点前后均无数字,因此会错误匹配仅含单个小数点的非法输入。

修正后的正则表达式

/^[+-]?(?:\d+[.,]?\d*|[.,]\d+)(?:[Ee][+-]?\d+)?$/g

如果你的校验规则不允许类似123.这种末尾带小数点的格式,可使用以下版本:

/^[+-]?(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:[Ee][+-]?\d+)?$/g

规则说明

  • 保留你原有需求的全部合法场景:支持正负号前缀、逗号/圆点作为小数分隔符、大小写E开头的科学计数法、指数部分支持正负号
  • 通过非捕获组(?:\d+[.,]?\d*|[.,]\d+)限定:要么整数部分至少有1位数字,要么小数部分至少有1位数字,完全排除仅单个小数点的非法情况
  • 合法匹配示例:3.14159、.123、123.、+1.2e-5、-4,5E6、100
  • 非法匹配示例:.、+-.、e12、12e

内容的提问来源于stack exchange,提问作者gaurav sabharwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:18:04