일단 String으로 된 숫자열 포맷 처리 (숫자 아닌 문자가 있으면 제거하고 동작)

/**
 * @type   : function
 * @access : public
 * @desc   : 자바스크립트의 내장 객체인 String 객체에 addComma 메소드를 추가한다.
 *           스트링에서 콤마(,)를 추가한다.
 * <pre>
 *     "-12345678.123".addComma();
 * </pre>
 * @return : string 콤마(,)가 추가된 값
 */
 String.prototype.addComma = function(){
    var reg = /(^[+-]?\d+)(\d{3})/;
    var num = this.valueOf().replace(/[^0-9]/gi, "");

    while (reg.test(num))
        num = num.replace(reg, '$1' + ',' + '$2');

    return num;
};

 

그 뒤에 Number 타입들 처리 (String 으로 반환됨)

/**
 * @type   : function
 * @access : public
 * @desc   : 자바스크립트의 내장 객체인 Number 객체에 addComma 메소드를 추가한다.
 *           값에서 콤마(,)를 추가한다.
 * <pre>
 *     -12345678.123.addComma();
 * </pre>
 * @return : 콤마(,)가 추가된 값
 */
Number.prototype.addComma = function(){
    var num = this.toString();

    if (isNaN(num)) return 0;

    return num.addComma();
};

 

번외로 그냥 replace의 정규표현식을 이용해 되는 컴마 제거 함수

/**
 * @type   : prototype_function
 * @access : public
 * @desc   : 자바스크립트의 내장 객체인 String 객체에 removeComma 메소드를 추가한다.
 *           스트링에서 콤마(,)를 제거한다.
 * <pre>
 *     "-123,456,789.123".removeComma();
 * </pre>
 * @return : string 콤마(,)가 제거된 값
 */
String.prototype.removeComma = function() {
    return this.replace(/,/gi,"");
};

 

profile

이브리타, 나의 에뜨와르
너와 내가 공유하는 추억
너와 내가 만들 추억