IT일상

javascript에서 한글에서 종성(받침)이 있는지 체크하는 방법 본문

프론트엔드

javascript에서 한글에서 종성(받침)이 있는지 체크하는 방법

solo5star 2023. 4. 25. 00:57
리뉴얼 된 블로그로 보기: https://solo5star.dev/posts/39/

 

한글을 처리할 때 "은/는" 은 어떻게 대응할 수 있을까?

 

예를 들면,

* 만두일 땐 만두는

* 짜장일 땐 짜장은

 

즉 단어의 종성 유무를 체크해야 한다.

 

방법은 간단하다. 한글 유니코드 특성 상 0, 28, 56 ... 번째 글짜가 종성이 없다. 따라서 28로 MOD 연산을 했을 때 0이면 종성이 없다는 뜻이다.

 

function hasLastConsonantLetter(text) {
  return (text.charCodeAt(text.length - 1) - "가".charCodeAt(0)) % 28 !== 0;
}

["만두", "카레", "짜장", "짜장면", "불닭볶음면", "과자"].forEach((word) => {
  console.log(word + (hasLastConsonantLetter(word) ? "은" : "는"));
});

매직 넘버, 숫자 28을 기억하자!

Comments