数字转大写

function intToChinese(str) {
				str = str + '';
				var len = str.length - 1;
				var idxs = ['', '十', '百', '千', '万', '十', '百', '千', '亿', '十', '百', '千', '万', '十', '百', '千', '亿'];
				var num = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
				return str.replace(/([1-9]|0+)/g, function($, $1, idx, full) {
					var pos = 0;
					if($1[0] != '0') {
						pos = len - idx;
						if(idx == 0 && $1[0] == 1 && idxs[len - idx] == '十') {
							return idxs[len - idx];
						}
						return num[$1[0]] + idxs[len - idx];
					} else {
						var left = len - idx;
						var right = len - idx + $1.length;
						if(Math.floor(right / 4) - Math.floor(left / 4) > 0) {
							pos = left - left % 4;
						}
						if(pos) {
							return idxs[pos] + num[$1[0]];
						} else if(idx + $1.length >= len) {
							return '';
						} else {
							return num[$1[0]]
						}
					}
				});
			}

                console.log(intToChinese(12345))

 

  

posted @ 2018-06-25 17:57  小囧光  阅读(136)  评论(0编辑  收藏  举报