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

如何编写Survey123正则表达式以支持0.05增量的小数输入?

问题原因与修正方案

错误原因分析

你修改后的正则表达式^\d{0,2}(?:.[0-9][0,5])?$存在三个关键问题:

  1. 小数点未转义:正则中的.是通配符,会匹配任意单个字符(比如字母、符号),而非字面意义的小数点,必须用\.表示真实的小数点。
  2. 字符组写法错误:[0,5]的写法会匹配0、逗号、5三个字符,而非你预期的0或5,正确的字符组应该是[05](去掉多余的逗号)。
  3. 结构限制过严:你的正则强制要求小数部分必须是两位,而你需要允许一位小数的输入(比如9.1等价于9.10,属于0.05增量的合法值),因此结构上需要支持一位或两位小数的情况。

正确的正则表达式

针对Survey123的需求,允许输入以0.05为增量的两位小数(含一位小数简写、整数),正确的正则如下:

^\d{0,2}(?:\.(?:[0-9]|[0-9][05]))?$

正则各部分解释

  • ^\d{0,2}:匹配开头0-2位数字(支持整数输入,也允许.05这类无整数部分的输入)
  • (?:\.(?:[0-9]|[0-9][05]))?:可选的小数部分:
    • \.:匹配字面小数点
    • [0-9]:匹配一位0-9的数字(支持9.1这类一位小数简写)
    • [0-9][05]:匹配两位数字且末位为0或5(支持9.10、9.15这类标准两位小数)
    • ?:表示小数部分整体可选(即允许纯整数输入)

可选优化(禁止单独小数点)

如果需要禁止仅输入.的无效情况,可以调整为:

^(?:\d{1,2}|\d{0,2}\.(?:[0-9]|[0-9][05]))$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:27:06