我制作了一个带有正则表达式的版本来查找输入中的数字并将其包装成你想要的。我添加了一个超时以防止在用户完成输入之前移动光标。试试这个小提琴
编码 :
var formatTimeout;
$("#pledge_amt_gross_total").on("keyup", function() {
var self = $(this);
clearTimeout(formatTimeout);
formatTimeout = setTimeout(function() {
var regex = /\d+/;
var amount = self.val().match(regex);
if (amount.length > 0) {
self.val("$ " + amount + " USD");
} else {
self.val("");
}
}, 1000);
});
如果您希望它更快或更慢,您可以更改在 setTimout 函数中应用格式之前的时间。
编辑 :
如果您希望任何数字以格式连接:fiddle
var formatTimeout;
$("#pledge_amt_gross_total").on("keyup", function() {
var self = $(this);
clearTimeout(formatTimeout);
formatTimeout = setTimeout(function() {
var regex = /\d+/g;
var amount = self.val().match(regex);
if (amount.length > 0) {
self.val("$ " + amount.join("") + " USD");
} else {
self.val("");
}
}, 1000);
});
我将正则表达式替换为可以找到任何数字的全局正则表达式。然后我将数字合二为一。