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

HTML表单input的pattern属性正则:允许整数与0.5增量值

解决HTML表单中半整数/整数输入的正则验证问题

直接给你能用的正则方案,再拆解说明细节:

基础版(允许前导零)

适合不需要限制前导零的场景,比如允许输入01、00.5:

pattern="^\d+(\.5)?$"

规则拆解:

  • ^ 和 $:锁定整个输入内容,避免1.5abc这类无效内容被误判为合法
  • \d+:匹配1个或多个数字(对应数值的整数部分)
  • (\.5)?:可选的.5后缀,?表示这个部分可以出现0次或1次——没有时就是纯整数,有时就是半整数

进阶版(禁止前导零)

如果要避免用户输入01、00.5这类不符合常规数值格式的内容,用这个:

pattern="^0(\.5)?$|^[1-9]\d*(\.5)?$"

规则拆解:

  • ^0(\.5)?$:单独匹配0或0.5这两种以0开头的合法值
  • |:逻辑“或”,分隔两种合法格式
  • ^[1-9]\d*(\.5)?$:匹配不以0开头的整数(如1、10)或半整数(如1.5、10.5)

HTML使用示例

把正则放到input的pattern属性里,搭配title提示用户输入规则:

<input type="number" name="quantity" pattern="^\d+(\.5)?$" title="请输入以0.5为增量的数值,例如0.5、1、1.5等">

提示:用type="number"时,浏览器会自带数值输入的基础校验,配合正则能更精准控制输入格式。

你之前的问题分析

  • 第一个正则[0-9]+\.[0-9]:强制要求必须包含小数点和一位小数,所以纯整数无法被匹配
  • 第二个正则[0-9]+,[0-9]*\.[0-9]+:多了个多余的逗号,且逻辑结构混乱,导致任何输入都无法匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:02:08