gpt4 book ai didi

javascript - 逗号未正确放置在 keyup 的输入中

转载 作者:行者123 更新时间:2023-11-30 00:02:30 25 4
gpt4 key购买 nike

当用户在输入中输入数字时,我试图在 keyup 的适当位置添加逗号。使用当前代码,值 1,000 有效,但 10,000 无效。相反,后者显示为 1,0000。

addCommas = function(input) {
return (input.toString()).replace(
/^([-+]?)(0?)(\d+)(.?)(\d+)$/g,
function(match, sign, zeros, before, decimal, after) {
var reverseString = function(string) {
return string.split('').reverse().join('');
};
var insertCommas = function(string) {
var reversed = reverseString(string);
var reversedWithCommas = reversed.match(/.{1,3}/g).join(',');
return reverseString(reversedWithCommas);
};
return sign + (decimal ? insertCommas(before) + decimal + after : insertCommas(before + after));
}
);
};

我有一个精简版本的代码来说明这个问题:

http://jsfiddle.net/tgf59ezr/7/

最佳答案

啊,终于想通了:)。不是我最初的想法,而是你的函数中断了,因为当前 .paynow 节点的值中有一个 , 。在传递给 addCommas() 函数之前,您需要替换所有逗号:

recalc_total() 中的示例修复:

function recalc_total() {
$('.paynow').keyup(function() {
var $ThisCheck = $(this).parents('tr').find('.payfull');
// Add Commas if # is over 1,000
// *** See My Edit Here, by adding `.replace(/,/g, '')` ***
$(this).val(addCommas($(this).val().replace(/,/g, ''));

if ($(this).val() == $ThisCheck.val().replace('$', '')) {
$ThisCheck.iCheck('check');
} else {
$ThisCheck.iCheck('uncheck');
}
CalcFooter();
});
}

http://jsfiddle.net/tgf59ezr/14/

关于javascript - 逗号未正确放置在 keyup 的输入中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com