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

如何构建仅允许整数或1-2位小数的CSV正则表达式(Chrome引擎)

符合要求的CSV数字列表正则表达式(Chrome HTML内置引擎)

直接给出适配Chrome HTML内置正则引擎(即JavaScript正则)的表达式:

^(\d+(\.\d{1,2})?)(,\d+(\.\d{1,2})?)*$

正则结构解释

  • \d+:匹配1位及以上的整数部分,确保每个元素至少有一个数字
  • (\.\d{1,2})?:可选的小数部分,?表示这部分可以不存在(对应纯整数);如果存在,必须是一个小数点后跟1-2位数字,严格限制小数位数
  • (,\d+(\.\d{1,2})?)*:匹配0次及以上的「逗号+有效数字」组合,既支持多元素列表,又避免了末尾多余逗号的情况

测试用例验证(完全匹配预期)

  • 1:匹配 ✅(单元素纯整数)
  • 1,:不匹配 ❌(逗号后无有效数字,正则要求逗号后必须紧跟合法数字)
  • 1,2:匹配 ✅(双整数元素)
  • 1,2,1.0:匹配 ✅(混合整数与1位小数)
  • 3.05,1:匹配 ✅(2位小数与整数组合)
  • 3.005,2:不匹配 ❌(3.005含3位小数,违反\d{1,2}的限制)
  • 1,A1,3:不匹配 ❌(A1包含非数字字符,正则仅允许数字、小数点和合法位置的逗号)
  • 2,D:不匹配 ❌(D为非数字字符,正则不接受)
  • 空白:不匹配 ❌(无有效数字,正则要求至少有一个合法数字元素)
  • ,:不匹配 ❌(无有效数字,正则要求开头必须是合法数字)

原正则的问题

你之前用的^[\d,\.]+$仅做了字符范围校验,没有约束字符的合法结构:

  • 会匹配1..2(多个小数点)、,1(开头逗号)、1.(无小数位的小数点)、3.005(三位小数)这类非法格式,完全无法满足校验需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:31:31