<p id=aa>asd</p>
<script language=javascript>
var d=10045345;
aa.innerHTML=d.toLocaleString();
</script>

解决方案 »

  1.   

    <input type=text size=30 onblur="onaablur(this);" onfocus="onaafocus(this);">
    <script language=javascript>
    function onaablur(o)
    {
    if(o.value!="")o.value=Number(o.value).toLocaleString();
    }
    function onaafocus(o)
    {
    if(o.value!="")o.value=Number(o.value);
    }
    </script>
      

  2.   

    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE> 
    <script language="javascript">
    function setCurrency(){
        s=Form1.inputbox.value;
        if(/[^0-9\.\-]/.test(s)) return "invalid value";
        s=s.replace(/^(\d*)$/,"$1.");
        s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1");
        s=s.replace(".",",");
        var re=/(\d)(\d{3},)/;
        while(re.test(s))
            s=s.replace(re,"$1,$2");
        s=s.replace(/,(\d\d)$/,".$1");
        s=s.replace(/^\./,"0.");
        Form1.inputbox.value=s;
        } 
    </script>
    </HEAD>
    <BODY>
    <FORM name="Form1" METHOD=POST ACTION="">
    <INPUT TYPE="text" NAME="inputbox" value="" onblur="setCurrency()"> 
    </FORM>
    </BODY>
    </HTML>
      

  3.   

    Unending(看分答题) ,谢谢你,会给你分的
    不过你得代码,再次得到焦点时侯会报错阿,另外,如果本身数字没有小数位,就不要加小数为了,帮忙到底,谢谢了
      

  4.   

    <input type=text size=30 onblur="onaablur(this);" onfocus="onaafocus(this);">
    <script language=javascript>
    function onaablur(o)
    {
    if(o.value!="")o.value=Number(o.value).toLocaleString().replace(/\.00$/g,"");
    }
    function onaafocus(o)
    {
    if(o.value!="")o.value=Number(o.value.replace(/,/g,""));
    }
    </script>最后给你改一次,不行就自己想办法吧
      

  5.   

    <script language=javascript>
    /*
    参数1:以#表示数字或字符,可加入一个小数点,两个小数点就会出错,格式化后的样式
    参数2:每组格式之间的连接符
    */
    String.prototype.HBformatNumber=function(FormatParttern,ConnectOption)
    {
    if(!/#/.test(FormatParttern))//判断格式是不是可以进行格式化
    {
    return "格式错误";
    }
    var FormatPartternArray=FormatParttern.split("\.");//分开小数部分和整数部分的格式
    return splitNUM(this)
    function splitNUM(num)//此函数进行分开数字
    {
    NumArray=num.split("\.")
    if(NumArray.length==1)
    {
    return formatNUM(NumArray[0],FormatPartternArray[0],true)
    }
    else
    {
    if(FormatPartternArray.length==1)
    {
    return formatNUM(NumArray[0],FormatPartternArray[0],true)+"."+NumArray[1]
    }
    else
    {
    return formatNUM(NumArray[0],FormatPartternArray[0],true)+"."+formatNUM(NumArray[1],FormatPartternArray[1],false)
    }
    }
    }
    /*
    格式化字符串函数
    参数1:待格式化的字符串
    参数2:格式化样式
    参数3:是否为整数格式化,true为整数格式化,false为小数,字符串也为true
    */
    function formatNUM(num,Formatparttern,ifInterger)
    {
    var IntergerPushArray=new Array();//定义一个数组栈来存放整数
    var IntergerFormatPartternNum=Formatparttern.match(/\#/g).length//得到一组格式化样式中包含多少个数字/
    var IntegerParttern=(ifInterger)?(new RegExp(Formatparttern.replace(/[^#]/g,"").replace(/#/g,".")+"$")):new RegExp("^"+Formatparttern.replace(/[^#]/g,"").replace(/#/g,"."))//创建正则为了把每组数字取出来
    while(IntegerParttern.test(num))
    {
    IntergerPushArray.push(num.match(IntegerParttern))//把每一组放到数组中
    num=num.replace(IntegerParttern,"");//去掉这组,去拿下一组
    }
    if(num!="")
    {
    var RemainNum=num.length//剩下不够一组数字的时候判断还有几个数字
    var deleteNum=IntergerFormatPartternNum-RemainNum//一会需要去掉的数字个数
    for(var i=0;i<IntergerFormatPartternNum;i++)//把最后一组不够的位数加0填充
    {
    num=(ifInterger)?("0"+num):(num+"0")
    }
    num=(ifInterger)?num.substr((num.length-parseInt(IntergerFormatPartternNum))):num.substr(0,IntergerFormatPartternNum)//得到最后一个格式化后的函数
    IntergerPushArray.push(num);//将最后一组进栈
    }
    for(var i=0;i<IntergerPushArray.length;i++)
    {
    var j=-1;
    var str=IntergerPushArray[i].toString();
    IntergerPushArray[i]=Formatparttern.replace(/(#)/g,function($1){j++;return str.substr(j,1)})//替换
    }
    if(ifInterger)//如果整数返回数组逆序,并且通过连接字符连接每组数据,去掉多余的0;否则返回格式化后的小数部分
    {
    return (IntergerPushArray.reverse().join(ConnectOption).substr(parseInt(deleteNum)))
    }
    else
    {
    return(IntergerPushArray.join(ConnectOption))
    }
    }
    }
    var a="12324536789.1243211";//在这里修改要格式化的字符串
    var b="20050908"
    var c="20050908091500"
    var d="abcssfasdfsdfsdf"
    /*
    alert(a.HBformatNumber("###.###",","))//可以按各种需要进行格式化,比如格式化3位一组
    alert(a.HBformatNumber("###",","))//只格式化整数部分,3位一组
    alert(b.HBformatNumber("####-##-##",""))//时间字符串也支持,可以把input的maxlength属性设为相应格式的最大长度,这样就不会出现两组了,不过没有判断是否为时间对象
    alert(c.HBformatNumber("####-##-## ##:##:##",""))//可以加时分秒
    alert(a.HBformatNumber("###,##.#-##"," "))//支持大部分特殊格式
    alert(d.HBformatNumber("###",","))//支持大部分字符串
    */
    function show2(obj)
    {
    obj.value=obj.value.HBformatNumber("###",",")
    }
    function show(obj)
    {
    obj.value=obj.value.replace(/,/g,"")
    }
    </script>
    <input name="haha" onfocus=show(this) onblur="show2(this)">
      

  6.   

    Unending(看分答题),谢谢你,基本完美,但还差一点,能否在帮下盲?解决马上给分!
    就是获得焦点时侯,逗号没有了,但是光标总是跑到文本框的最前面,我想鼠标点到哪里,光标就停在哪里,这个该怎么实现阿,谢谢了阿
      

  7.   

    得到文本框内光标位置HTML代码:<script language="javascript"> 
    function getPos(obj){ 
    obj.focus(); 
    var s=document.selection.createRange(); 
    s.setEndPoint("StartToStart",obj.createTextRange()) 
    alert(s.text.length); 

    </script> 
    <input type="text" id="txt1" value="1234567890"> 
    <input type="button" value="得到光标位置" onclick=getPos(txt1)>
      
    控制input框内光标位置HTML代码:<script language="javascript"> 
    function setPos(num) 

    text1.focus(); 
    var e =document.getElementById("text1"); 
    var r =e.createTextRange(); 
    r.moveStart('character',num); 
    r.collapse(true); 
    r.select(); 

    </script> 
    <input type="text" id="text1" value="1234567890"> 
    <select onchange="setPos(this.selectedIndex)"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    </select>