숫자를 한글로 바꾸는 소스는 많이 검색된다. 하지만 한글을 숫자로 바꾸는 소스를 찾지 못했다

그래서 만들어 봤다.. ㅜ.ㅜ

 

## 한글을 숫자로

let KoreanToNum = (koreanNum)=>{

  const numberHan = '영일이삼사오육칠팔구'
  const number = '0123456789'
  const units = {'십':10, '백':100, '천':1000, '만':10000, '억':100000000, '조':1000000000000}

  koreanNum = koreanNum.replace( /[^0-9가-힣]/gi, '' ) //한글,숫자만
  let source = koreanNum.split("")
  let result = tmp = num = check = 0
  let source_length = source.length-1;
  source.forEach((token,i)=>{

    check = numberHan.indexOf(token)
    if(check<0 && number.indexOf(token)>-1){
      check = number.indexOf(token)
    }
  
    if('십백천'.indexOf(token) >-1){  //소단위
      num += (tmp==0 ? 1:tmp) * units[token]
      tmp = 0
    }else if('만억조'.indexOf(token) >-1){  //대단위
      num += tmp
      result += (num==0 ? 1:num) * units[token]
      tmp = 0
      num = 0
    }else if(check>-1){ //숫자이면
      tmp = tmp*10+check
    //}else{ 그 외는 대상이 아님
    }
  
    if(i ==source_length){  //마지막이면
      result += num + tmp
    }
    
  })
  return result
}

console.log( KoreanToNum('123천') )
// 123000
console.log( KoreanToNum('123만') )
// 1230000
console.log( KoreanToNum('만오천') )
// 15000
console.log( KoreanToNum('일천이백만') )
// 12000000
console.log( KoreanToNum('일천이백삼십사만오천육백칠십팔') )
// 12345678
console.log( KoreanToNum('1,718 백만') )
// 1718000000
console.log( KoreanToNum('asdf 125,321 원') )
// 125321
console.log( KoreanToNum('2억12') )
// 200000012
console.log( KoreanToNum('3,086만 4,627') )
// 30864627
console.log( KoreanToNum('9,274억 8,304만 1,001') )
// 927483041001
console.log( KoreanToNum('100') )
// 100
console.log( KoreanToNum('000 /') )
// 0

 

 

 

## 숫자를 한글로

github.com/huskyhoochu/num-to-korean

// node npm 설치
npm install num-to-korean

// ES5 선언
const { numToKorean } = require('num-to-korean');

// 사용
const billion = numToKorean(100000000);
// -> '일억'

const number = numToKorean(12345678);
// -> '일천이백삼십사만오천육백칠십팔'

const spacing = numToKorean(24234224, 'spacing');
// -> 이천사백이십삼만 사천이백이십사

numTokorean(927483041001, 'mixed'); // 문자열 'mixed' 입력 가능
// -> 9,274억 8,304만 1,001

 

 

 

 

 

 

+ Recent posts