const priceEl = document.querySelector('#enter-price');
const pricePlaceholder = document.querySelector('#price-placeholder');
const textArray = ["", "일", "이", "삼", "사","오","육","칠","팔","구","십"];
const priceArray = ["", "십", "백", "천", "", "십", "백", "천", "", "십", "백", "천", "", "십", "백", "천"];
priceEl.addEventListener("keyup", function (e) {
const value = e.target.value;
const price = value.replace(/,/g, "");
let textPrice;
if (price != "" && !isNaN(price)) {
textPrice = numberTransformKorean(price) + "원";
} else {
textPrice = "금액 미입력";
}
pricePlaceholder.innerHTML = textPrice;
const priceComma = price.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
e.target.value = priceComma;
});
const numberTransformKorean = (number) => {
const enteredNumber = (number * 10000).toString();
const numberArray = enteredNumber.split("");
let result = "";
numberArray.forEach((item, index) => {
let numberUnit = "";
let transNumber = textArray[enteredNumber.charAt(numberArray.length - (index + 1))];
if (transNumber !== "") {
numberUnit += transNumber + priceArray[index];
}
switch (index) {
case 4:
numberUnit += "만";
break;
case 8:
numberUnit += "억";
break;
case 12:
numberUnit += "조";
break;
}
if (numberUnit != "") {
result = numberUnit + result;
}
});
const zeroCount = numberArray.filter((item) => item === "0").length;
if (zeroCount === 8) {
result = result.replace("만", "");
}
return result;
};