반응형

 

 

종종 한글 조사 때문에 골치 아플 때가 있죠?

 

"${who1}(은/는) ${who2}(을/를) 사랑합니다."

 

과거에 이렇게 사용한 적이 있었는데, 사실 좀 보기 안좋죠?? 

 

조사 처리를 위한 함수를 하나 만들었습니다. (다른 곳에서 참조하여)

 

유니코드 초성/중성/종성 확인 방법


초성 인덱스 = ((한글 유니코드값 - 0xAC00) / 28) / 21
중성 인덱스 = ((한글 유니코드값 - 0xAC00) / 28) % 21
종성 인덱스 = (한글 유니코드값 - 0xAC00) % 28

 

const getJosa = (name: string,josa1:string,josa2:string) => {
  const lastChar = name.charCodeAt(name.length - 1)
  const isThereLastChar = (lastChar - 0xac00) % 28
  if (isThereLastChar) {
    return josa1
  }
  return josa2
}

 

 

이 함수를 이렇게 사용할 수 있습니다.

const getTextChanges = (field: string, oldValue: any, newValue: any) => {

    return t("changed.desc", {
      field,
      josa: getJosa(field,'이','가'),
      oldValue,
      newValue
    })
  }

 

ko.json

"changed.desc": "{{field}}{{josa}} \"{{oldValue}}\" 에서 \"{{newValue}}\" 으로 변경되었습니다",

 

 

 

[참고] https://velog.io/@hjkdw95/%ED%95%9C%EA%B5%AD%EC%96%B4-%EC%9D%80%EB%8A%94-%EC%9D%B4%EA%B0%80-%EC%99%80%EA%B0%80-javascript%EB%A1%9C-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0

 

한국어 은/는 이/가 와/가 javascript로 처리하기

참 쉽습니다

velog.io

 

# 해피코딩!!

+ Recent posts