Javascript 正则表达式替换所有非货币字符
Posted
技术标签:
【中文标题】Javascript 正则表达式替换所有非货币字符【英文标题】:Javascript regex replace all non currency characters 【发布时间】:2014-03-22 19:56:34 【问题描述】:我需要使用 javascript 替换文本中的所有非数字字符。我们的客户想要删除非数字,例如 1,330.00 变为 1330.00。
我可以替换除小数位以外的所有非数字,但这允许多个小数位。
我有一个jsbin的代码 http://jsbin.com/vetedeca/1/edit?html,output
$(文档).ready(函数() $('input').bind('keyup', function() var 值 = $(this).val() value = value.replace(/[^\d\.]+/g,''); $(this).val(value); ) )如何编辑它以删除除第一次出现的小数位以外的所有非数字
例如 1,330.00 变为 1330.00 1,330.00.00 变为 1330.00 133o.00d.33 变为 133.00
【问题讨论】:
【参考方案1】:我设法找到了处理多点问题的方法。
我使用 .replace() 添加了另一行:
$(document).ready(function()
$('input').bind('keyup', function()
var value = $(this).val()
value = value.replace(/[^\d\.]+/g,'');
value = value.replace(/(\..*)\./g,'$1');
$(this).val(value);
)
)
此附加行将检查是否有第一个点后跟数字,然后是另一个点。
如果是这种情况,替换将保留现有的小数部分并删除第二个点。
更新jsbin:http://jsbin.com/vetedeca/3/edit?html,output
【讨论】:
以上是关于Javascript 正则表达式替换所有非货币字符的主要内容,如果未能解决你的问题,请参考以下文章
如果出现多于 n 次,则 JavaScript 正则表达式替换