天发表了一篇阿拉伯数字转中文汉字的Java方法的文章。
Java方法在后端比较方便。但是前端转换的话,用JS方法就方便多了。
为了前端转换不用请求服务器。现把同样逻辑的Java方法,用JS来实现。
function convertNumberToChinese(inputData) {
var decimalUnit = new Map();
decimalUnit.set(-2, "分");
decimalUnit.set(-1, "角");
decimalUnit.set(1, "元");
decimalUnit.set(2, "拾");
decimalUnit.set(3, "佰");
decimalUnit.set(4, "仟");
decimalUnit.set(5, "万");
decimalUnit.set(6, "拾");// 十万
decimalUnit.set(7, "佰");// 佰万
decimalUnit.set(8, "仟");// 仟万
decimalUnit.set(9, "亿");
decimalUnit.set(10, "拾");// 十亿
decimalUnit.set(11, "佰");// 佰亿
decimalUnit.set(12, "仟");// 仟亿
decimalUnit.set(13, "兆");
decimalUnit.set(14, "拾");// 十兆
decimalUnit.set(15, "佰");// 佰兆
decimalUnit.set(16, "仟");// 仟兆
var extraUnit = new Array();
extraUnit.push("万");
extraUnit.push("亿");
extraUnit.push("兆");
var unitCount = new Map();
unitCount.set(0, "零");
unitCount.set(1, "壹");
unitCount.set(2, "贰");
unitCount.set(3, "叁");
unitCount.set(4, "肆");
unitCount.set(5, "伍");
unitCount.set(6, "陆");
unitCount.set(7, "柒");
unitCount.set(8, "捌");
unitCount.set(9, "玖");
var outputData = "";
integerData = null;
scaleData = null;
var decimalMatcher = inputData.match(new RegExp(/^(\d{1,16})\.(\d{0,2})$/));
var integerMatcher = inputData.match(new RegExp(/^(\d{1,16})$/));
if (decimalMatcher != null && decimalMatcher.length == 3) {// 小数的场合
integerData = decimalMatcher[1];
scaleData = decimalMatcher[2];
} else if (integerMatcher != null && integerMatcher.length == 2) {// 整数的场合
integerData = integerMatcher[1];
}
// 转换整数
if (integerData != null && integerData != "") {
for (var k = 0; k < integerData.length; k++) {
var inputChar = integerData[k];
var currentUnitCount = parseInt(inputChar);
var currentUnit = decimalUnit.get(integerData.length - k);
var numToChinese = null;
if (currentUnitCount == 0) {
numToChinese = unitCount.get(currentUnitCount);
if (k == integerData.length - 1) {
numToChinese = unitCount.get(currentUnitCount) + currentUnit;
} else if (extraUnit.includes(currentUnit)) {
numToChinese = currentUnit;
}
} else {
numToChinese = unitCount.get(currentUnitCount) + currentUnit;
}
outputData = outputData + numToChinese;
}
}
// 转换小数
if (scaleData != null && scaleData != "") {
for (var k = 0; k < scaleData.length; k++) {
var inputChar = scaleData[k];
var currentUnitCount = parseInt(inputChar);
var currentUnit = decimalUnit.get(-(k + 1));
var numToChinese = null;
if (currentUnitCount == 0) {
numToChinese = unitCount.get(currentUnitCount);
} else {
numToChinese = unitCount.get(currentUnitCount) + currentUnit;
}
outputData = outputData + numToChinese;
}
}
// 去除重复的零
outputData = outputData.replace(/(零{2,})/g, '');
if (outputData != "零元") {
// 去除零
outputData = outputData.replace(/(零{1})/g, '');
// 去除不合理的单位
outputData = outputData.replace(/^(零元)/g, '');
outputData = outputData.replace(/(亿万)/g, '亿');
outputData = outputData.replace(/(兆亿)/g, '兆');
outputData = outputData.replace(/^(兆)/g, '');
outputData = outputData.replace(/^(亿)/g, '');
outputData = outputData.replace(/^(万)/g, '');
}
return outputData;
}
调用方式如下:
convertNumberToChinese('1000.12')
点赞 + 关注 + 收藏 = 学会了
招教你把PDF转换为HTML,将PDF转换成HTML网页格式,是快速打造专业级网站的方法之一。由小编为大家整理的4招教你把PDF转换为HTML,4招教你把PDF转换为HTML仅供大家参考和学习。
4招教你把PDF转换为HTML
当用户找到了非常详实的PDF资料,打算将之制作成为网页格式时,如果重新开发 往往需要耗费大量的时间,可是又不知道怎么样才可以将PDF文件转换成HTML网页格式,此时如果能够借助PDF转换器工具来进行处理,效率将得到大幅提升。
这里重点给大家介绍一款简单易用的OCR文字识别软件:ABBYY FineReader 12,这款软件可快速、方便地将扫描纸质文档、PDF文件和数码相机的图像转换成可编辑、可搜索的文本,其中就包括HTML网页格式。
那么如何使用ABBYY FineReader 12将PDF转换成HTML呢?方法如下:
1、打开ABBYY FineReader 12,在任务首页上点击‘其他’,然后选择图像或PDF文件到HTML;
2、在打开图像对话框中选择要转换为HTML的PDF文件,点击打开;
3、打开PDF文件之后,软件会自动识别PDF文件,等待识别过程,识别完成之后会自动生成HTML页面,整个过程全自动,无需任何手动操作;
4、如果发现转换之后的HTML网页与原PDF文件有个别不一致的地方,可以返回到软件,第3步中识别之后的文档会在屏幕右侧显示,这里的文档是可以编辑的,可对照原PDF文件进行校对修改,再点击文件选项卡,在‘将文档另存为’下拉列表中选择HTML文档,保存即可。
使用ABBYY FineReader 12的好处是,整个转换过程快速自动化,无需专业知识就能获得想要的结果,是你的办公必备产品,如果你还想了解更多关于ABBYY FineReader 12这款OCR文字识别软件的内容,大家可前往那个ABBYY中文网了解相关信息。
*请认真填写需求信息,我们会在24小时内与您取得联系。