晕!直接赋值为123,456.12不行?
<input onclick='value=123456.12' onblur='value="123,456.12"'>

解决方案 »

  1.   

    <script>
    function formatNumber(number,pattern)
    {
    var str = number.toString();
    var strInt;
    var strFloat;
    var formatInt;
    var formatFloat;
    if(/\./g.test(pattern))
    {
    formatInt = pattern.split('.')[0];
    formatFloat = pattern.split('.')[1];
    }
    else
    {
    formatInt = pattern;
    formatFloat = null;
    } if(/\./g.test(str))
    {
    if(formatFloat!=null)
    {
    var tempFloat = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
    strInt = (Math.floor(number)+Math.floor(tempFloat)).toString();
    strFloat = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:'0';
    }
    else
    {
    strInt = Math.round(number).toString();
    strFloat = '0';
    }
    }
    else
    {
    strInt = str;
    strFloat = '0';
    }
    if(formatInt!=null)
    {
    var outputInt = '';
    var zero = formatInt.match(/0*$/)[0].length;
    var comma = null;
    if(/,/g.test(formatInt))
    {
    comma = formatInt.match(/,[^,]*/)[0].length-1;
    }
    var newReg = new RegExp('(\\d{'+comma+'})','g'); if(strInt.length<zero)
    {
    outputInt = new Array(zero+1).join('0')+strInt;
    outputInt = outputInt.substr(outputInt.length-zero,zero)
    }
    else
    {
    outputInt = strInt;
    } var 
    outputInt = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1')
    outputInt = outputInt.replace(/^,/,''); strInt = outputInt;
    } if(formatFloat!=null)
    {
    var outputFloat = '';
    var zero = formatFloat.match(/^0*/)[0].length; if(strFloat.length<zero)
    {
    outputFloat = strFloat+new Array(zero+1).join('0');
    //outputFloat = outputFloat.substring(0,formatFloat.length);
    var outputFloat1 = outputFloat.substring(0,zero);
    var outputFloat2 = outputFloat.substring(zero,formatFloat.length);
    outputFloat = outputFloat1+outputFloat2.replace(/0*$/,'');
    }
    else
    {
    outputFloat = strFloat.substring(0,formatFloat.length);
    } strFloat = outputFloat;
    }
    else
    {
    if(pattern!='' || (pattern=='' && strFloat=='0'))
    {
    strFloat = '';
    }
    } return strInt+(strFloat==''?'':'.'+strFloat);
    }
    </script>
    <input type="text" name="" onchange="this.value=formatNumber(this.value,'#,###.00')">
      

  2.   

    是不是123456789.123变123,456,789.123
    <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);
    var number1Leng = number1.length;
    if(tmp.indexOf(".") == -1){
    number1 = tmp;
    numberend = "";
    }
    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>
    <form name= "csnd2">
    <input type= "text" name= "number" value= "" onchange= "javascript:changeit(this.form)">
    </form>
      

  3.   

    if(tmp.indexOf(".") == -1){
      number1 = tmp;
      numberend = "";
    }
    换到
    var number1Leng = number1.length;
    上面