单行 JS 实现移动端金钱格式输入校验
本文介绍如何在移动端实现金钱格式的单行 JavaScript 输入校验。通过正则表达式屏蔽非法字符,限制小数点数量与位置,确保数值格式符合财务规范,提供简洁高效的代码方案。
移动端金钱格式输入校验方案
金钱格式校验是常见的需求。早期工作中初次遇到此类需求时,由于对正则表达式掌握不足,通过参考类似方案并查阅正则文档,将其修改为符合自身业务逻辑的形式。
然而,用户输入行为具有任意性。若仅依靠显示提示信息来约束输入,虽能满足基本校验要求,但交互体验并不友好。
许多移动端应用在处理金钱输入时,采用屏蔽错误输入的方式,仅允许用户输入符合正确格式的内容。以下梳理金钱格式的具体输入规则:
金钱格式输入规则详解
1. 禁止输入空白字符及字母 2. 仅允许输入数字及小数点 3. 数值首位不能为小数点 4. 小数点在整个字符串中只能出现一次 5. 小数点后必须且仅保留两位数字 6. 禁止输入首位为 0 的多位数(如 0123)
看似简单的问题,实则需周全考虑各种边界情况。经过反复摸索,最终实现了简洁的代码。其中核心的校验逻辑仅需一行代码即可完成。
单行 JS 代码实现
function moneyFormat(str) {
return str.replace(/[^\d\.]|^\./g, '').replace(/\.{2}/g, '.').replace(/^([1-9]\d*|0)(\.\d{1,2})(\.|\d{1})?$/, '$1$2').replace(/^0\d{1}/g, '0');
}
篇幅有限,此处不再赘述。最后附上在 CodePen 上编写的 Demo 示例,希望能对有需要的人提供帮助。

以上所述是小编给大家介绍的单行 JS 实现移动端金钱格式的输入规则,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
