My application was relying on this function to test if a string is Korean or not :
const isKoreanWord = (input) => {
const match = input.match(/[\u3131-\uD79D]/g);
return match ? match.length === input.length : false;
}
isKoreanWord('만두'); // true
isKoreanWord('mandu'); // false
until I started to include Chinese support and now this function is incoherent :
isKoreanWord('幹嘛'); // true
I believe this is caused by the fact that Korean characters and Chinese ones are intermingled into the same Unicode range.
How should I correct this function to make it returns true
if the input contains only Korean characters ?
Here is the unicode range you need for Hangul (Taken from their wikipedia page).
So your regex
.match
should look like this: