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

如何使用JavaScript验证以逗号作为小数点分隔符的输入?

限制输入框仅允许数字和单个逗号作为小数点分隔符

你可以通过修改正则表达式,实现只保留数字和最多一个逗号作为小数点分隔符,同时过滤掉其他非法字符(包括点号)。以下是修正后的代码:

<input oninput="this.value = this.value.replace(/[^0-9,]/g, '').replace(/(,).*\1/g, '$1').replace(/^,/, '')" value="">

代码逻辑说明:

  • 过滤非法字符:replace(/[^0-9,]/g, '') 移除所有非数字、非逗号的字符,确保输入仅包含数字和逗号,直接排除点号和其他符号。
  • 限制单个逗号:replace(/(,).*\1/g, '$1') 匹配第一个逗号后,将后续出现的所有逗号替换为空,保证整个输入值中最多只有一个逗号。
  • 移除开头逗号:replace(/^,/, '') 避免用户直接输入逗号作为开头,确保输入以数字起始(如果不需要此限制,可去掉这部分)。

如果需要支持负数(允许开头的单个负号),可以调整代码如下:

<input oninput="this.value = this.value.replace(/[^0-9,-]/g, '').replace(/(?!^)-/g, '').replace(/(,).*\1/g, '$1').replace(/^,/, '')" value="">

这里额外添加了:

  • replace(/[^0-9,-]/g, '') 允许输入负号
  • replace(/(?!^)-/g, '') 确保负号只能出现在开头,避免中间或末尾出现多个负号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:45:32