javascriptで数値を通貨型「3桁カンマ区切り」に変換する

javascriptで数値を通貨型「3桁カンマ区切り」に変換する

javascriptで数値を通貨型「3桁カンマ区切り」に変換する関数を作りましたので紹介をします。

通貨変換関数

//通貨変換
function changeNumberFormat(val){
    //半角数字に変換
    val = changeHankaku(val);

    //数字以外を削除
    val = strDelete(val);

    //カンマを削除
    val = val.replace(/\,/g, '');

    //カンマ区切りに変換
    val = changeConma(val);

    return val;
}

//半角数字に変換
function changeHankaku(val){
    han = "0123456789.,-+";
    zen = "0123456789.,-+";
    str = "";
    for(i=0; i<val.length; i++){
        //1文字ずつ取得
        chr = val.charAt(i);
        chk = zen.indexOf(chr, 0);
        if (chk>=0){
           //全角数字だったら半角にする
           chr = han.charAt(chk);
        }
        str += chr;
    }
    return str;
}

//数字以外を削除
function strDelete(val){
    var getNum = val.match(/[0-9,-.]/g);
    var num = "";
    for(i=0; i<getNum.length; i++){
        num = num + getNum[i];
    }
    return num;
}

// カンマうち
function changeConma(val) {
    //桁数を取得
    var keta = val.indexOf(".");  //少数以下があるか
    if (keta<0) {
        keta = val.length;
    }
	
    //小数点以下の値
    var result = val.substring(keta, val.length);
	
    for (i=0; i<keta; i++) {
        //1文字ずつ取得
        var chr = val.substring(keta - 1 - i, keta - 1 - i + 1);		
		
        //3桁区切りでカンマを追加
        if (i>0 && i % 3 == 0) {
            result = "," + result;
        }
		
        result = chr + result;
    }
	
    return result; 
}