jQueryなど便利なライブラリもいいですが、軽量でカスタマイズ自由自在なオリジナリティあふれるネイティブJavaScriptを書くのもいいかも。
jQueryなど便利なライブラリもいいですが、軽量でカスタマイズ自由自在なオリジナリティあふれるネイティブJavaScriptを書くのもいいかも。

数値(1000単位)を日本語桁区切り文字列で返す

注意
これらの記事は2016年当時の物で結構古いです。モダンブラウザでは不要な記述やJavaScriptでなくともCSSで実現できる機能もあります。 当時の記録として残してありますがあまり参考になるものではありません。
概要
数値(1000単位)を日本語桁区切り文字列で返します。
例) 123456 --> 1億2345万6000
使用方法
コメントを参考に実装します。
jpNum1000(123456,null,'円'); --> 1億2345万6000円
備考
桁数が多い入力を扱う場合に<input>タグのblurをキーに発火させると誤入力を防げます。
10億などの数値を扱うケースで1000以下を省略して入力する場合に適しています。

/**
 * 数値を日本語に変換(1000単位の数値)
 *
 * @param mixed num 数値
 * @param string 前に付ける
 * @param string 後ろに付ける
 * @return string 変換後の文字列
 */
var jpNum1000 = function(num, before, after) {
    String.prototype.lastFourNum = function() {
        return this.substr(strNum.length - 4).replace(/^0+/,'');
    }
    String.prototype.withoutLastFour = function() {
        return this.substr(0,this.length - 4);
    }
    if (typeof before === 'undefined') {
        before = '';
    }
    if (typeof after === 'undefined') {
        after = '';
    }
    var strNum = String(num * 1000);
    if (strNum == '') {
        return '';
    }
    var minusFlag = false;
    if (strNum.substr(0,1) == '-') {
        minusFlag = true;
        strNum = strNum.substr(1);
    }
    var ichi = '';
    if (strNum.length > 4) {
        ich = strNum.lastFourNum();
        strNum = strNum.withoutLastFour();
    } else {
        ich = strNum;
        strNum = '';
    }
    var man = '';
    if (strNum.length > 4) {
        man = strNum.lastFourNum();
        strNum = strNum.withoutLastFour();
    } else {
        man = strNum;
        strNum = '';
    }
    var oku = '';
    if (strNum.length > 4) {
        oku = strNum.lastFourNum();
        strNum = strNum.withoutLastFour();
    } else {
        oku = strNum;
        strNum = '';
    }
    var cho = '';
    if (strNum.length > 4) {
        cyo = strNum.lastFourNum();
        strNum = strNum.withoutLastFour();
    } else {
        cyo = strNum;
        strNum = '';
    }
    var result = '';
    if (cyo != '') {
        result += cyo + '兆';
    }
    if (oku != '') {
        result += oku + '億';
    }
    if (man != '') {
        result += man + '万';
    }
    if (ich != '') {
        result += ich;
    }
    if (minusFlag) {
        return before + '-' + result + after;
    } else {
        return before + result + after;
    }
}
    
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72