对于给一组数字添加千分符,我能想到的方法有两种,一种是通过循环遍历,另一种是使用正则表达式。
第一种方法太笨了,这里就用第二种方法实现。
代码是在网上找的,因为添加千分符的正则表达式我是不会写的。
<html>
<head>
</head>
<body>
<input id="val" type="text" value="1231234564.454" />
<button οnclick="get()">get it</button>
<script type="text/javascript">
var $=function(){
return document.getElementById(arguments[0]);
}
function get(){
var val=$('val').value;
if(val!=''&&!isNaN(val)){
re=/(\d{1,3})(?=(\d{3})+(?:$|\.))/g;
n=val.replace(re,"$1,");
alert(n);
}
else alert('请输入数字');
}
</script>
</body>
</html>
之前写的太粗糙了,有些细节没有做。刚才做了一个实例。
<html>
<head>
</head>
<body>
<span id="subtotal">59,210.00</span><br />
<input id="txtDiscount" type="text" οnblur="get();" />%<br />
<span id="result" style="color:red;"></span>
<!--<button οnclick="get()">get it</button>-->
<script type="text/javascript">
var $=function(){
return document.getElementById(arguments[0]);
}
function get(){
var val=$('subtotal').innerHTML.replace(/,/g,"");
var discount = $('txtDiscount').value;
var total;
if(discount!==''&&!isNaN(discount)){
total = parseFloat(val)*(1-parseFloat(discount)/100);
total = total.toFixed(2) + "";
var re=/(\d{1,3})(?=(\d{3})+(?:$|\.))/g;
var n=total.replace(re,"$1,");
$("result").innerHTML = n;
}else{
alert("Please input discount");
}
}
</script>
</body>
</html>
这样就好多了。是个实际的应用啦。