function formatAcc(obj){
var realV=document.getElementById("AccountNumber");
realV.value=obj.value.replace(/\s*/g, "");
document.getElementById("ACCNO").value=realV.value;
var str=realV.value;
var temp="";
for(var i=0;i<str.length;i++){
temp=temp+str.substring(i,i+1);
if(i<3&&(i+1)%3==0&&i!=(str.length-1)){
temp=temp+" ";
}
if(i>3&&(i+1)%4==0&&i!=(str.length-1)){
temp=temp+" ";
}
}
obj.value=temp;
}我想输出以下格式123 4567 4567 4567 4567 ……可是上面代码输出是这样的,怎样修改代码123 45678 4567 4567 4567 ……

解决方案 »

  1.   

    这问题问的真是获取的realV的数据格式是怎么样的?
      

  2.   

    <script type="text/javascript">
    <!--
    function formatAcc(obj){
    var realV=document.getElementById("AccountNumber");
    realV.value=obj.value.replace(/\s*/g, "");
    document.getElementById("ACCNO").value=realV.value;
    var str=realV.value;
    var temp="";
    for(var i=0;i<str.length;i++){ 
    temp=temp+str.substring(i,i+1);
    if(i<3&&(i+1)%3==0&&i!=(str.length-1)){ 
    temp=temp+" ";
    }
    if(i>3&&(i-3+1)%4==0&&i!=(str.length-1)){ 
    temp=temp+" ";
    }

    obj.value=temp;
    }
    //-->
    </script>
    <body>
    <input type="text" id="AccountNumber" value="1234567456745674567" size="30"><br/>
    <input type="text" id="ACCNO" value="" size="30"><br/>
    <input type="button" value="Click" onclick="formatAcc(document.getElementById('AccountNumber'))"/>
    </body>
      

  3.   

    function formatAcc(obj) {
    var realV = document.getElementById("AccountNumber");
    realV.value = obj.value.replace(/\s*/g, "");
    document.getElementById("ACCNO").value = realV.value;
    var arr = realV.value.split('');
    var str = '';
    if (arr.length < 3) str = arr.join('');
    else {
    str = arr.slice(0,3).join('');
    for (var i = 2; i < arr.length; i = i + 4) str += ' ' + arr.slice(i, i+4).join('');
    }
    obj.value = str;
    }
      

  4.   

    hongmei85
    回答经测试完全可以!
      

  5.   

    恩,是的~
    function formatAcc(obj) {
        var realV = document.getElementById("AccountNumber");
        realV.value = obj.value.replace(/\s*/g, "");
        document.getElementById("ACCNO").value = realV.value;
        var arr = realV.value.split('');
        var str = '';
        if (arr.length < 3) str = arr.join('');
        else {
            str = arr.slice(0,3).join('');
            for (var i = 3; i < arr.length; i = i + 4) str += ' ' + arr.slice(i, i+4).join('');
            //上面i初始值弄错了,改为i=3应该可以了
        }
        obj.value = str;
    }