UNPKG

@writ/utils

Version:
47 lines (44 loc) 1.32 kB
'use strict'; // 中文数字与阿拉伯数字的隐射表 var areas = { 零: 0, 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9 }; var units = { 十: { value: 10, secUnit: false }, 百: { value: 100, secUnit: false }, 千: { value: 1000, secUnit: false }, 万: { value: 10000, secUnit: true }, 亿: { value: 100000000, secUnit: true } }; /** * 将汉语数字转为阿拉伯数字 * @param {*} chnStr * @returns {string} */ function toArabic(chnStr) { var rtn = 0; var section = 0; var number = 0; var secUnit = false; var str = chnStr.split(''); for (var i = 0; i < str.length; i++) { var num = areas[str[i]]; if (typeof num !== 'undefined') { number = num; if (i === str.length - 1) { section += number; } } else { var unit = units[str[i]].value; secUnit = units[str[i]].secUnit; if (secUnit) { section = (section + number) * unit; rtn += section; section = 0; } else { section += (number * unit); } number = 0; } } return rtn + section; } module.exports = toArabic;