본문 바로가기

잼있냐JavaScript/유용한 자바스크립트 UTIL

문자열 변환 및 숫자열 변환 관련 - 유용한 스크립트 3

/*
 * 문자열의 Byte 수를 반환한다.
 */
function get_byte(str)
{
    var len = 0;
    for (var idx=0; idx<str.length; idx++)
    {
        if ( (str.charCodeAt(idx)<0) || (str.charCodeAt(idx)>127) )
            len += 2;
        else
            len ++;
    }

    return len;
}

/*
 * 문자열을 find문자열을 찾아서 rps로 대체
 */
function replace_str(str, find, rps)
{
    var reg = new RegExp(find, "ig");
    return str.replace(reg, rps);
}

/*
 * 숫자를 1000단위 콤마로 구분된 문자열로 반환
 */
function money_format(num)
{
    var comma = new RegExp("([0-9])([0-9][0-9][0-9][,.])");
    var data = String(num).split(".");

    data[0] += ".";
    do
    {
        data[0] = data[0].replace(comma, "$1,$2");
    }
    while (comma.test(data[0]));

    if (data.length > 1)
        return data.join("");
    else
        return data[0].split(".")[0];
}

/*
 * 1000단위 콤마로 구분된 문자열를 숫자로 반환
 */
function money_to_num(str)
{
    var num = replace_str(String(str), ",", "");
    return Number(num);
}

/*
 * 숫자 num을 n자릿수까지 반올림
 */
function round_x(num, n)
{
    // 1234.675, 2 -> 1234.68
    var i = Math.pow(10, n);
    return Math.round(num * i) / i;
}

/*
 * 숫자 num을 n자릿수까지 올림
 */
function ceil_x(num, n)
{
    // 1234.674, 2 -> 1234.68
    var i = Math.pow(10, n);
    return Math.ceil(num * i) / i;
}

/*
 * 숫자 num을 n자릿수까지 내림
 */
function floor_x(num, n)
{
    // 1234.675, 2 -> 1234.67
    var i = Math.pow(10, n);
    return Math.floor(num * i) / i;
}