在你说它的重复之前,我不是在问如何实际格式化价格。但是问我哪里做错了,或者我应该怎么做才能以我想要的方式实现它。
我做了价格格式化(实际上是从某处复制代码) http://jsfiddle.net/qwY24/
喜欢价格 1
但现在我想在输入字段本身(价格 2)中格式化价格,它可以正常工作到 6 位,但之后它就搞砸了。它有两个问题
- 6位后格式混乱
- 当按返回键(删除号码)时,价格仅在 6 位数后不会重新格式化
代码
$(".price1").on("keyup",function(){
var price = $(this).val();
$(".formatted1").text(price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
$(".price2").on("keyup",function(){
var price = $(this).val();
price = price.replace(",","");
$(".price2").val(price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
$(".formatted2").text(price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
<label>Price 1</label> <input type="text" class="price1" /><br /> <label><b>Price 1 Formatted:</b></label> <span class="formatted1"></span><br /><br /><br /> <label>Price 2</label> <input type="text" class="price2" /><br /> <label><b>Price 2 Formatted</b></label> <span class="formatted2" ></span><br /><br /><br />