Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including hangul-tools with all npm packages installed. Try it out:

var hangulTools = require("hangul-tools")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

hangul-tools v0.1.4

A Hangul library for various Hangul/Korean operations including reading numbers, adding josa, and converting between different keyboards

hangul-tools

한글 분해, 결합, 조사 처리, 두음 법칙 적용, 숫자 읽기, 쿼티를 한글로 변환 등등의 잡다한 한글 관련 함수를 사용할 수 있는 자바스크립트 라이브러리입니다.

아직 한글 조합형이나 옛한글 등은 지원하지 않고 있습니다.

현재 제작중입니다.

hangul-tools 불러오기

var HanTools = require('hangul-tools');

<!-- hantools-keyboard.js는 키보드 관련 기능이 필요 없을 때는 불러올 필요 없음 -->
<script src="./hantools-keyboard.js"></script>
<script src="./hangul-tools.js"></script>

초성, 중성, 종성 목록

// 문자열 "ㄱㄲㄴㄷ...ㅎ"
console.log(HanTools.CHOSEONG);

// 문자열 "ㅏ...ㅣ"
console.log(HanTools.JUNGSEONG);

// 문자열 "Xㄱㄲㄳ...ㅎ"
console.log(HanTools.JONGSEONG);

// (현재) 문자열 "X"
console.log(HanTools.JONGSEONG_EMPTY);

글자 단위 연산

한글을 확인하려 isHangul을 호출했을 때, 공백이나 초성, 중성, 기타 문자들이 들어가 있으면 false를 반환하는 것에 주의해 주시기 바랍니다.

또한, disintegratecompose 함수는 기본적인 초성, 중성, 종성 분해 및 결합만을 할 수 있습니다. 복합 자음이나 모음은 분해가 되지 않으니 주의 해 주세요.

// true
console.log(HanTools.isHangul("강"));

// false
console.log(HanTools.isHangul("ㅓ"));

// 문자열 "ㄴㄷ.ㅈㅇㅇㅅ"
console.log(HanTools.toChoseong("노드.제이에스"));

// 문자열 "ㅗㅡ.ㅔㅣㅔㅡ"
console.log(HanTools.toJungseong("노드.제이에스"));

// 문자열 "ㄴㅇXXX!"
console.log(HanTools.toJongseong("안녕하세요!"));

// [["ㅇ","ㅣ","ㅇ"], ["ㅇ","ㅕ"], "!"]
console.log(
    "잉여!".split('').map(HanTools.disintegrate)
);

// 문자열 "글자ㅏ다"
console.log(
    HanTools.compose("ㄱㅡㄹ") +
    HanTools.compose("ㅈㅏ") +
    HanTools.compose([null, "ㅏ"]) +
    HanTools.compose(["ㄷ", "ㅏ", null])
);

// 문자열 "요로"
console.log(HanTools.dueum("뇨로"));

조사 다루기

길이 2의 문자열이나 배열을 사용할 수 있습니다.

var s1 = "내",
    s2 = "당신",
    s3 = "좋아하",
    s4 = "것";

// 문자열 "내가 당신을 좋아하는 것은"
console.log("%s%s %s%s %s %s"
    , s1, HanTools.josa(s1, "이가")
    , s2, HanTools.josa(s2, "을를")
    , HanTools.addJosa(s3, "은는")
    , HanTools.addJosa(s4, "은는"));

숫자 읽기

경까지 지원하며, 해 이상은 지원하지 않습니다. 서수(첫, 두, 세, ...)나 순우리말 숫자(하나, 둘, 셋, ..., 열, 스물, ...)도 지원하지 않습니다. 또한, 현재는 숫자를 그대로 읽은 것만 인식할 수 있습니다.

숫자를 인식할 때, 숫자와 그 뒤의 글 사이에는 띄어쓰기가 있어야 합니다.

// 숫자 '1234'
console.log(HanTools.parseNumber("천 이백 삼십 사"));

// 문자열 "점수 1234 점"
console.log(HanTools.replaceNumber("점수 천 이백 삼십 사 점"));

// 문자열 "천 이백 삼십 사"
console.log(HanTools.readNumber(1234));

키보드

두벌식과 세벌식 390을 지원합니다.

var andro_key = HanTools.Keyboard.QWERTY.getKeySequence("dkssud"),
    meda_key = HanTools.Keyboard.QWERTY.getKeySequence("jfshea");

// 문자열 "안녕 안녕"
console.log("%s %s"
    , HanTools.Keyboard.DUBEOLSIK.type(andro_key)
    , HanTools.Keyboard.SEBEOLSIK_390.type(meda_key));

// 문자열 "안녕"
console.log(HanTools.Keyboard.convert("dkssud", HanTools.Keyboard.QWERTY, HanTools.Keyboard.DUBEOLSIK));

시간과 시각

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free