in name_utils.js [133:161]
_isCJKName(name) {
// The name is considered to be a CJK name if it is only CJK characters,
// spaces, and "middle dot" separators, with at least one CJK character, and
// no more than 2 words.
//
// Chinese and Japanese names are usually spelled out using the Han
// characters (logographs), which constitute the "CJK Unified Ideographs"
// block in Unicode, also referred to as Unihan. Korean names are usually
// spelled out in the Korean alphabet (Hangul), although they do have a Han
// equivalent as well.
let reCJK = new RegExp("[" + this.CJK_RANGE.join("") + "]");
let previousWasCJK = false;
let wordCount = 0;
for (let c of name) {
let isMiddleDot = this.MIDDLE_DOT.includes(c);
let isCJK = !isMiddleDot && reCJK.test(c);
if (!isCJK && !isMiddleDot && !this.WHITESPACE.includes(c)) {
return false;
}
if (isCJK && !previousWasCJK) {
wordCount++;
}
previousWasCJK = isCJK;
}
return wordCount > 0 && wordCount < 3;
},