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

HTML输入框验证:仅允许逗号或点作为小数分隔符的正则实现方案

欧盟价格格式输入框验证实现方案

直接使用下面的JS代码替换原有逻辑即可,可完全匹配你的需求:

  • 仅允许输入数字、逗号、点三种字符
  • 禁止同时混用逗号和点作为小数分隔符,自动保留先输入的分隔符类型,删除后出现的另一种分隔符
  • 最多仅允许存在1个小数分隔符

完整代码如下:

$(".price_field").on("keyup", checkKey);

function checkKey() {
    // 第一步:过滤所有非法字符,仅保留数字、逗号、点
    let clean = this.value.replace(/[^0-9.,]/g, '');
    
    const commaPos = clean.indexOf(',');
    const dotPos = clean.indexOf('.');
    // 第二步:如果同时存在两种分隔符,保留先出现的类型,删除另一种
    if (commaPos !== -1 && dotPos !== -1) {
        clean = commaPos < dotPos ? clean.replace(/\./g, '') : clean.replace(/,/g, '');
    }

    // 第三步:删除多余的分隔符,仅保留第一个
    clean = clean.replace(/([.,]).*?\1/g, '$1');

    // 可选:如果需要限制最多2位小数,放开下面这行注释即可
    // clean = clean.replace(/([.,]\d{2})\d+/g, '$1');

    if (clean !== this.value) this.value = clean;
}

效果验证

符合要求的输入示例会正常保留:

  • 3,22、199,99 欧盟逗号分隔格式
  • 3.22、199.99 点分隔格式
  • 纯整数1234也可正常输入

违规输入会被自动清理:

  • 输入3.1,2会自动转为3.12
  • 输入3,1.2会自动转为3,12
  • 输入12.34.56会自动转为12.3456
  • 输入12,34,56会自动转为12,3456

内容的提问来源于stack exchange,提问作者Simeon Mark Fernandes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:18:04