-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathisEndWithBatchim.js
37 lines (32 loc) · 1.13 KB
/
isEndWithBatchim.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { HANGEUL_BASE } from './josa/constants';
import numberToGisusa from './susa/numberToGisusa';
import getJongseongIndex from './getJongseongIndex';
/**
* <h3>단어의 마지막 글자가 받침을 가지고 있는지 확인합니다</h3>
* - 한글단어 지원
* - 숫자 지원
* <br/>
* @example
* hangeul.isEndWithBatchim('조현권'); // returns true
* @example
* hangeul.isEndWithBatchim('유혜지'); // returns false
* @example
* hangeul.isEndWithBatchim(21); // returns true; '이십일'
* @example
* hangeul.isEndWithBatchim(22); // returns false; '이십이'
*
* @param {string|number} word 단어
* @return {boolean} 받침 유무 여부
*/
export default function isEndWithBatchim(word) {
if (typeof word === 'undefined' || word === null) return false;
// 마지막 단어
let lastChar = `${word}`.charAt(word.length - 1);
// 숫자일 경우 기수사로 변경
if (/\d/.test(lastChar)) {
lastChar = numberToGisusa(lastChar);
}
// TODO 알파벳으로 마무리 될 때 종성을 처리할 수 있는 규칙이 있을까?
// 0 = 받침 없음
return getJongseongIndex(lastChar) !== 0;
}