반응형
흔히 은행권에서 많이 볼 수 있는데요 금액을 숫자로 표기하다 보면 금액이 헷갈릴 수 있기 때문에 편의를 위해 제공되는 기능으로 금액을 한글로 표기해주는 경우가 많죠
/**
* @param val 가격정보 (Type. Number)
*/
function _fmtNumberKor(val){
var numKor = new Array("", "일", "이", "삼", "사","오","육","칠","팔","구","십"); // 숫자 문자
var danKor = new Array("", "십", "백", "천", "", "십", "백", "천", "", "십", "백", "천", "", "십", "백", "천"); // 만위 문자열
var result = "";
if(val && !isNaN(val)){
// CASE: 금액이 공란/NULL/문자가 포함된 경우가 아닌 경우에만 처리
for(var i = 0; i < val.length; i++) {
var str = "";
var num = numKor[val.charAt(val.length - (i+1))];
if(num != "") str += num + danKor[i]; // 숫자가 0인 경우 텍스트를 표현하지 않음
switch(i){
case 4:str += "만";break; // 4자리인 경우 '만'을 붙여줌 ex) 10000 -> 일만
case 8:str += "억";break; // 8자리인 경우 '억'을 붙여줌 ex) 100000000 -> 일억
case 12:str += "조";break; // 12자리인 경우 '조'를 붙여줌 ex) 1000000000000 -> 일조
}
result = str + result;
}
// Step. 불필요 단위 제거
if(result.indexOf("억만") > 0) result = result.replace("억만", "억");
if(result.indexOf("조만") > 0) result = result.replace("조만", "조");
if(result.indexOf("조억") > 0) result = result.replace("조억", "조");
result = result + "원";
}
return result ;
}
JSFiddle에서 좌측 하단에 상단의 소스를 넣고 맨 아래에
console.log(_fmtNumberKor("1234"));
를 넣으면
우측 하단의 콘솔 창에
"일천이백삼십사원"
이 출력됨을 확인할 수 있습니다.
(추가) 2022.11.12
기존 코드에 만 단위의 금액 또는 억 단위의 금액 표기가 없는 경우에도 만 / 억이 표기되는 오류 수정
ex) 100000000 ► 일억만원 ► 일억원
ex) 1000000000000 ► 일조억만원 ► 일조원
// Step. 불필요 단위 제거 if(result.indexOf("억만") > 0) result = result.replace("억만", "억"); if(result.indexOf("조만") > 0) result = result.replace("조만", "조"); if(result.indexOf("조억") > 0) result = result.replace("조억", "조"); |
반응형
'개발 창고 > Web' 카테고리의 다른 글
[MyBATIS] Primary Key를 Insert하기 위한 SelectKey (0) | 2020.08.05 |
---|---|
[Spring] 프로그램의 로깅을 위한 기술 Log4j (0) | 2020.08.03 |
[jQuery] 날짜 선택을 좀 더 쉽게 Datepicker (0) | 2020.07.26 |
[Spring] AOP란 무엇일까? (0) | 2020.07.23 |
[jQuery] Lazy Load 사용하기 (0) | 2020.07.23 |