在你说它的副本之前,我不是在问如何实际格式化价格。但是问我在哪里做错了,或者我应该怎样做才能按照我想要的方式来实现它。
我做了价格格式化(实际上是从某处复制代码) http://jsfiddle.net/qwY24/
喜欢价格1
但是现在我想在输入字段本身格式化格式(价格2 ),它可以正常工作到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 />
答案 0 :(得分:0)
price.replace(",","")
仅替换逗号的第一个实例,而不是所有实例。替换为
price = price.replace(/,/g,"");
(另外,下一行中的.toString()
部分是不必要的,因为该变量已经是一个字符串。)