如何使用jQuery移除表单textarea字段中的逗号与小数点?
实现方案
核心逻辑调整
原代码的问题是直接把格式化后带逗号、小数点的输入框值赋值给了提交用textarea,我们只需要拆分逻辑即可:
- 先提取用户输入的纯数字内容,直接写入提交用textarea
- 再将纯数字格式化为货币格式,回显到交互输入框
同时删掉冗余的oninput绑定,所有逻辑统一在jQuery的keyup事件里处理即可。
完整修改后代码
JS代码
$('input.number').keyup(function(event) { // 跳过方向键操作,避免影响光标移动 if(event.which >= 37 && event.which <= 40) return; // 第一步:提取纯数字,写入提交用textarea const pureNumber = $(this).val().replace(/\D/g, "").replace(/^0+/,"") || "0"; $('#demo').val(pureNumber); // 第二步:将纯数字格式化为货币格式,回显到交互输入框 $(this).val(function() { return pureNumber .split(/(\d{0,2})$/) .join(".") .replace(/\B(?=(\d{3})+(?!\d))/g, ",") .replace(/\.$/,"") // 仅移除末尾多余小数点,避免误删有效数字 }); });
HTML代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <input id="postcontent" class="number"> <br><br> <!-- 实际使用时可添加style="display:none"隐藏该字段 --> <textarea id="demo" rows="5"></textarea>
效果验证
当你输入100时:
- 交互输入框展示:
1.00 - 提交用textarea存储内容:
100
完全符合需求。
内容的提问来源于stack exchange,提问作者ricard0
相关产品推荐
相关产品推荐

