손님
2003-03-27 11:59:59
5
15357

[자바스크립트질문]숫자 앞을 정해진 길이로 0 채우기


자바스크립트 질문올려도 되나 모르겠습니다만. 도와줄 사람이 없어서리

질문올립니다.

제목과 같습니다만, 정해진 길이의 숫자 앞에 0을 붙여주는 함수를 만들고 싶습니다만.. 계속 해매서리 도움을 바랍니다.

예를 들어

텍스트 필드의 길이가 4로 정해지면

0004 --> 0004

004 --> 0004

40 --> 0040

4 --> 0004

040 --> 0040

4000 --> 4000

로 바꿔주어야 되는 데..

제가 생각 하기로는 fillzero(오브젝트 , 정해진 길이)

로 함수를 만들면 될꺼 같은데.. 잘 안됩니다..

도와 주십시요..

0
0
  • 답변 5

  • kenu
    2003-03-27 12:37:44
    function fillzero(obj, len) {
    obj= '000000000000000'+obj;
    return obj.substring(obj.length-len);
    }
    0
  • 손님
    2003-03-27 12:50:41
    헐 역시 케누님.. 감사합니다.
    0
  • 세브니
    2003-03-27 13:39:52
    jakarta-commons의 lang 프로젝트에 보면 StringUtil에 leftPad와 rightPad가 있는데.. 유용하게 쓰고 있습니다.
    그래서 javascript로 만들어봤습니다.

    <html>
    <head>
    <script>

    function leftPad(str, fillChar, length) {

    if (fillChar.length <> 1) {
    alert('fillChar must be a single character');
    return "";
    }

    if (str.length > length)
    return str;

    var returnStr = "";
    var i;
    for (i = str.length; i < length; i++) {
    returnStr = returnStr + fillChar;
    }

    returnStr = returnStr + str;

    return returnStr;
    }

    function rightPad(str, fillChar, length) {

    if (fillChar.length <> 1) {
    alert('fillChar must be a single character');
    return "";
    }

    if (str.length > length)
    return str;

    var returnStr = str;
    var i;
    for (i = str.length; i < length; i++) {
    returnStr = returnStr + fillChar;
    }

    return returnStr;
    }
    </script>
    </head>
    <body>
    <script>
    document.write("leftPad('1234', '0', 10) = " + leftPad('1234', '0', 10));
    document.write("<br>");
    document.write("rightPad('1234', '0', 10) = " + rightPad('1234', '0', 10));
    </script>
    </body>
    </html>
    0
  • 세브니
    2003-03-27 13:48:23
    웁스.. 마지막에 추가한게 에러네요 ^^;;
    <> ==> !=
    0
  • 진지
    2006-04-04 08:40:47
    헐.. 세브니님 미스샷이네용...ㅎㅎ <> 는 VB 쪽인디...^^;;;
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.