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

实时输入验证正则优化:解决100、101等数字无法匹配的问题

修正后的数字验证正则表达式(支持首零后多位数输入)

原正则表达式无法匹配100、101这类包含中间0的整数,原因是首零逻辑错误地约束了数字中间的0。以下是修正后的正则,完全保留原有验证规则,同时支持这类数字的实时输入验证:

^-?(?:0(?:[,.]\d+)?|[1-9]\d*(?:[,.]\d+)?)$

正则逻辑说明(对应原规则)

  • ^-?:允许开头出现负号,符合数字的负号使用规则
  • 核心分为两种非互斥情况(用非捕获组(?:...)分组):
    1. 以0开头的数字:0(?:[,.]\d+)?
      • 单独的0合法;若0后跟随逗号/点,必须紧跟至少一位数字(避免0./0,这类以符号结尾的无效格式),完全符合规则1和规则4
    2. 非0开头的数字:[1-9]\d*(?:[,.]\d+)?
      • [1-9]\d*:确保整数部分不以0开头,同时允许中间包含任意数量的0(如100、101)
      • 可选的[,.]\d+:允许添加小数部分,且小数部分必须有数字,避免以符号结尾,符合规则3和规则4
  • $:约束字符串结尾,确保不会以逗号/点结尾,符合规则4

规则验证

  1. 首0规则:0.12、0,456有效,012.90无效 ✅
  2. 无连续符号:12..45无法匹配 ✅
  3. 仅允许合法字符:123、123.45、123,45有效 ✅
  4. 不以符号开头/结尾:.123、123.、,456均无效 ✅

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:25:27