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

jQuery正则表达式需求:支持开头负号(允许数字、小数点)

我已经帮你搞定了在jQuery输入限制中支持负数输入的需求,调整后的代码既能保留原有的数字和单个小数点限制,又允许开头输入负号,具体实现如下:

需求回顾

现有代码仅允许输入数字和单个小数点,需新增支持开头输入负号以实现负数输入。
原有代码:

$(function(){ 
  $('.number_dots').on('input', function(){ 
    this.value = this.value.replace(/^\.|[^\d\.]|\.(?=.*\.)|^0+(?=\d)/g, ''); 
  }); 
});

修改后的解决方案代码

$(function(){ 
  $('.number_dots').on('input', function(){ 
    var value = this.value.trim(); // 先去除首尾空格,避免干扰判断
    
    // 处理开头的负号逻辑
    if(value.charAt(0) === '-'){
      // 剥离负号,对后面的数字部分应用原有正则规则
      var numPart = value.substring(1);
      value = "-" + numPart.replace(/^\.|[^\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
    }else{
      // 非负数情况直接沿用原有正则处理
      value = value.replace(/^\.|[^\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
    }
    
    this.value = value;
  }); 
});

关键逻辑说明

  • 新增trim()处理:避免输入首尾空格影响负号的判断和后续正则处理
  • 分情况处理输入值:
    • 如果第一个字符是负号,单独保留这个负号,对后面的数字部分执行原有的过滤规则(比如不允许多个小数点、前置无效零、非数字字符等),再把负号拼接回去
    • 如果没有负号,直接使用原有的正则逻辑,确保原有功能不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:03:52