JavaScript 字符串处理:trim() 和 replace() 方法的应用JavaScript实现阿拉伯数字转换为中文及大写中文的方法
在 JavaScript 中,trim()
和 replace()
方法是处理字符串的常用工具。trim()
可以去除字符串开头和结尾的空白字符,而 replace()
则用于替换字符串中的子串。下面,我将介绍如何使用这些方法实现阿拉伯数字转换为中文及大写中文的方法。
阿拉伯数字转中文数字
function toChineseNumber(num) {
const numMap = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
const unitMap = ["", "十", "百", "千", "万", "十", "百", "千", "亿"];
if (num === 0) return "零";
let result = '';
const numStr = num.toString();
const length = numStr.length;
for (let i = 0; i < length; i++) {
const digit = parseInt(numStr[i]);
const unit = unitMap[length - 1 - i];
if (digit !== 0) {
result += numMap[digit] + unit;
} else {
if (result[result.length - 1] !== '零' && i < length - 1) {
result += numMap[digit];
}
}
}
// 去掉类似“十二”中的“零”或“二十”中的“十”开头
result = result.replace(/一十/, "十");
result = result.replace(/零$/, "");
return result;
}
console.log(toChineseNumber(123456789));
阿拉伯数字转大写中文数字
转换阿拉伯数字到大写中文数字的过程与普通中文数字类似,但需要用到大写的中文数字和更复杂的清理规则:
function toUpperChineseNumber(num) {
const numMap = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
const unitMap = ["", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿"];
if (num === 0) return "零";
let result = '';
const numStr = num.toString();
const length = numStr.length;
for (let i = 0; i < length; i++) {
const digit = parseInt(numStr[i]);
const unit = unitMap[length - 1 - i];
if (digit !== 0) {
result += numMap[digit] + unit;
} else {
if (result[result.length - 1] !== '零' && i < length - 1) {
result += numMap[digit];
}
}
}
// 去掉类似“拾贰”中的开头“壹”或“贰拾”中的开头“零贰”
result = result.replace(/^壹拾/, "拾");
result = result.replace(/零$/, ""); // 去掉末尾的“零”
return result;
}
console.log(toUpperChineseNumber(123456789));
注意事项
trim()
方法:在此应用中主要用于去除不必要的空格,但这在当前的数字转文字过程中未涉及。replace()
方法:用于清理和调整特定模式文本,比如清理多余的“零”或去掉“壹拾”中多余的“壹”。
这些函数能够处理较为简单的数字转换,在实际应用中,如果需要支持小数或负数,需要做额外的处理。