我检查你的修复。但它似乎有一个问题。如果你按1到9的所有键,数字变成12345678.9。但根据你的要求,应该是1234567.89 [如果我理解正确]。 请尝试下面的解决方案,看看它是否符合您的要求。请注意,在代码块的末尾,我添加了两个函数“GetNumberAfterAppendingDecimal”和“GetCleanString”,然后我使用了$(.key).click();
$('.key').click(function(){
var inputNumber=GetCleanString($("#numBox").html());
$("#numBox").html(GetNumberAfterAppendingDecimal(inputNumber));
}); (钥匙)
function GetNumberAfterAppendingDecimal(str) {
if (str.length < 3)
return str;
var positionFromEnd = 2;
var reversedStr = str.split('').reverse().join('');
if (str.length == 3)
positionFromEnd -= 1;
reversedStr = [reversedStr.slice(0, positionFromEnd), ".", reversedStr.slice(positionFromEnd)].join('');
return reversedStr.split('').reverse().join('');
}
function GetCleanString(str) {
str = str.replace(/[\r]+/, '');
str = str.replace(/[\n]+/, '');
str = str.replace(/[\t]+/, '');
str = str.replace('.', '');
str = $.trim(str);
return str;
}
虽然这些方法工作从UX(用户体验)角度来看,他们有一个主要的缺点。可以说,我的意思是进入'13',但我输入'12',但意外。所以我第一个数字就是'1',第二个是'3'。此时出现小数点。点击'delete'现在擦除我没有输入的小数点,然后点击'2'和'enter'完成。我现在在箱子里的价值是'132'而不是'12'。 –