JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<script>
function translateNumber(numberText) {
var CHINESE_NEGATIVE = "负";
var CHINESE_ZERO = "零";
var CHINESE_DIGITS = ["", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
var CHINESE_UNITS = ["", "十", "百", "千"];
var CHINESE_GROUP_UNITS = ["", "万", "亿", "兆", "京", "垓", "杼", "穰", "溝", "澗", "正", "載", "極"];
if (numberText === "") {
return "";
}
numberText = numberText.replace(/^0+/g, "");
numberText = numberText.replace(/^-0+/g, "-");
console.log(numberText)
if (numberText === "" || numberText === "-") {
return CHINESE_ZERO;
}
var result = "";
if (numberText[0] === "-") {
result += CHINESE_NEGATIVE;
numberText = numberText.substring(1);
}
var groupIsZero = true;
var needZero = false;
for (var i = 0; i < numberText.length; ++i) {
var position = numberText.length - 1 - i;
var digit = parseInt(numberText[i]);
var unit = position % CHINESE_UNITS.length;
var group = (position - unit) / CHINESE_UNITS.length;
if (digit !== 0) {
if (needZero) {
result += CHINESE_ZERO;
}
if (digit !== 1 || unit !== 1 || !groupIsZero || (group === 0 && needZero)) {
result += CHINESE_DIGITS[digit];
}
result += CHINESE_UNITS[unit];
}
groupIsZero = groupIsZero && (digit === 0);
if (unit === 0 && !groupIsZero) {
result += CHINESE_GROUP_UNITS[group];
}
needZero = (digit === 0 && (unit !== 0 || groupIsZero));
if (unit === 0) {
groupIsZero = true;
}
}
return result;
}
function doNumberTranslation() {
numberText = document.getElementById('number-input').value;
chinese = translateNumber(numberText);
...