我需要使用javascript替换textare中的所有非数字字符。我们的客户希望删除和非数字,例如1,330.00变为1330.00。
我可以替换除小数位以外的所有非数字,但这允许多个小数位。
我有一个代码的jsbin http://jsbin.com/vetedeca/1/edit?html,output
$(document).ready(function(){ $('input').bind('keyup', function() { var value = $(this).val() value = value.replace(/[^\d\.]+/g,''); $(this).val(value); }) })
如何编辑此项以删除除第一次出现小数位以外的所有非数字
e.g 1,330.00变为1330.00 1,330.00.00变为1330.00 133o.00d.33变为133.00
答案 0 :(得分:0)
您可以使用此替换:
var repl = s.replace(/^(.+?\.\d+).+/g, "$1").replace(/[^\d.]+/g, "");
答案 1 :(得分:0)
我设法找到了解决多点问题的方法。
我使用.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);
})
})
此附加行将检查是否有第一个点后跟数字,然后是另一个点。
如果是这种情况,替换将保留现有的小数部分并删除第二个点。