用JavaScript将数字转换为大写金额

项目中用到的,用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

vardigitUppercase =function(n) {

varfraction = ['角','分'];

vardigit = [

'零','壹','贰','叁','肆',

'伍','陆','柒','捌','玖'

];

varunit = [

['元','万','亿'],

['','拾','佰','仟']

];

varhead = n < 0 ?'欠':'';

n = Math.abs(n);

vars ='';

for(vari = 0; i < fraction.length; i++) {

s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./,'');

}

s = s ||'整';

n = Math.floor(n);

for(vari = 0; i < unit[0].length && n > 0; i++) {

varp ='';

for(varj = 0; j < unit[1].length && n > 0; j++) {

p = digit[n % 10] + unit[1][j] + p;

n = Math.floor(n / 10);

}

s = p.replace(/(零.)*零$/,'').replace(/^$/,'零') + unit[0][i] + s;

}

returnhead + s.replace(/(零.)*零元/,'元')

.replace(/(零.)+/g,'零')

.replace(/^整$/,'零元整');

};

console.log(digitUppercase(7682.01));//柒仟陆佰捌拾贰元壹分

console.log(digitUppercase(7682));//柒仟陆佰捌拾贰元整

console.log(digitUppercase(951434677682.00));//玖仟伍佰壹拾肆亿叁仟肆佰陆拾柒万柒仟陆佰捌拾贰元整