<script>
function changeit(form){
var tmp = form.number.value;
var thepos = tmp.indexOf(".");
var tmp1;
var number1 = tmp.substring(0,thepos);
var numberend = tmp.substring(++thepos,tmp.length);
if(tmp.indexOf(".") == -1){
number1 = tmp;
numberend = "";
}
var number1Leng = number1.length; if(number1Leng<= 3){
tmp1 = number1;
}
else{
if(number1Leng%3==0){
var num = (number1Leng-number1Leng%3)/3-1;
}
else{
num = (number1Leng-number1Leng%3)/3;
}
var i;
tmp1 = number1.substring(0,number1Leng%3);
for(i = 0;i<num+1;i++){
tmp1 = tmp1 + "," + number1.substring((number1Leng%3 + i*3),(number1Leng%3 + (i+1)*3));
}
if(tmp1.indexOf(",")==0){
tmp1 = tmp1.substring(1,tmp1.length);
}
if(tmp1.substring(tmp1.length-1,tmp1.length) == ","){
tmp1 = tmp1.substring(0,tmp1.length-1);
}
}
tmp1 = tmp1 + "." + numberend;
form.number.value = tmp1;
}
</script>
<input type= "text" name= "number" onchange= "javascript:changeit(this.form)">

解决方案 »

  1.   

    哇酷,至于那么麻烦吗?
    用formatnumber(数,2,true,,false)即可,若在JS里无法用,你用VBS就是了
      

  2.   

    错了,应该是
    formatnumber(数,2,true,,true)
      

  3.   

    function splitNum(s)
    {
      s += "";
      if (!/^(\+|-)?\d+(\.\d+)?$/.test(s))
      {alert("输入的字符串不是数字格式!"); return false;}
      var a = s.match(/^(\+|-)?(\d[^\.]+)(\.\d+)?$/);
      var b = a[2].split(""), n=b.length-1, c="";
      for (var i=n; i>-1; i--)
      {
        if ((n-i)%3==0&&n!=i) c = ","+ c;  c = b[i] + c;
      }
      return(a[1] + c + a[3]);
    }
    alert(splitNum(-12345678.123));
    alert(splitNum("12345678.123"));
    alert(splitNum("10000000000000000000"));