자바스크립트 한글 초성/중성/종성 분리 알고리즘

Source

  • Evernote/Advanced View Required/자바스크립트 한글의 초성, 중성, 종성 분리하기 Wireframe.md

Summary

이 문서는 자바스크립트에서 유니코드 한글 문자를 초성, 중성, 종성으로 분리하는 알고리즘과 구현 코드를 다룹니다. 유니코드 한글은 0xAC00(가)을 기준으로 초성 19 개, 중성 21 개, 종성 28 개로 조합되며, 이를 역산하여 각 구성 요소의 인덱스를 구합니다. 구해진 인덱스에 각각의 기본 코드값 (초성: 0x1100, 중성: 0x1161, 종성: 0x11A8) 을 더하여 실제 문자로 변환합니다. 종성 없는 경우를 위해 종성 계산 시 1 을 빼는 처리가 포함됩니다.

Key Points

  • 유니코드 한글 조합 공식: ((초성 * 21) + 중성) * 28 + 종성 + 0xAC00
  • 초성 인덱스: ((코드값 - 0xAC00) / 28) / 21
  • 중성 인덱스: ((코드값 - 0xAC00) / 28) % 21
  • 종성 인덱스: (코드값 - 0xAC00) % 28
  • 실제 문자 변환: 인덱스에 각 기본 코드값 (0x1100, 0x1161, 0x11A8) 을 더함
  • 종성 없는 경우 처리: 종성 문자 코드 계산 시 1 을 뺌