Skip to content

Instantly share code, notes, and snippets.

@chalkygames123
Created May 14, 2023 09:44
Show Gist options
  • Save chalkygames123/8717243d242e648fa13d9c91dc04d96b to your computer and use it in GitHub Desktop.
Save chalkygames123/8717243d242e648fa13d9c91dc04d96b to your computer and use it in GitHub Desktop.
'use strict';
// 参照: https://tama-san.com/resolve-kanji/
const table = {
'⺃': '乚',
'⺅': '亻',
'⺇': '𠘨',
'⺉': '刂',
'⺋': '㔾',
'⺍': '𭕄',
'⺎': '兀',
'⺏': '尣',
'⺐': '尢',
'⼪': '尢',
'⺒': '巳',
'⺓': '幺',
'⼳': '幺',
'⺔': '彑',
'⺖': '忄',
'⺗': '㣺',
'⺘': '扌',
'⺙': '攵',
'⺛': '旡',
'⺞': '歺',
'⺟': '母',
'⺠': '民',
'⺡': '氵',
'⺣': '灬',
'⺤': '爫',
'⺦': '丬',
'⺨': '犭',
'⺪': '𤴔',
'⺫': '罒',
'⺲': '罒',
'⺭': '礻',
'⺮': '𥫗',
'⺱': '罓',
'⺳': '𦉪',
'⺹': '耂',
'⺽': '𦥑',
'⺾': '艹',
'⺿': '艹',
'⻀': '艹',
'⻁': '虎',
'⻂': '衤',
'⻃': '覀',
'⻄': '西',
'⻊': '𧾷',
'⻌': '辶',
'⻍': '辶',
'⻏': '阝',
'⻖': '阝',
'⻑': '長',
'⾧': '長',
'⻒': '镸',
'⻘': '青',
'⻞': '𩙿',
'⻟': '飠',
'⻤': '鬼',
'⿁': '鬼',
'⻨': '麦',
'⻩': '黄',
'⻫': '斉',
'⻭': '歯',
'⻯': '竜',
'⻲': '亀',
'⼀': '一',
'⼁': '丨',
'⼂': '丶',
'⼃': '丿',
'⼄': '乙',
'⼅': '亅',
'⼆': '二',
'⼇': '亠',
'⼈': '人',
'⼉': '儿',
'⼊': '入',
'⼋': '八',
'⼌': '冂',
'⼍': '冖',
'⼎': '冫',
'⼏': '几',
'⼐': '凵',
'⼑': '刀',
'⼒': '力',
'⼓': '勹',
'⼔': '匕',
'⼕': '匚',
'⼖': '匸',
'⼗': '十',
'⼘': '卜',
'⼙': '卩',
'⼚': '厂',
'⼛': '厶',
'⼜': '又',
'⼝': '口',
'⼞': '囗',
'⼟': '土',
'⼠': '士',
'⼡': '夂',
'⼢': '夊',
'⼣': '夕',
'⼤': '大',
'⼥': '女',
'⼦': '子',
'⼧': '宀',
'⼨': '寸',
'⼩': '小',
'⼫': '尸',
'⼬': '屮',
'⼭': '山',
'⼮': '巛',
'⼯': '工',
'⼰': '己',
'⼱': '巾',
'⼲': '干',
'⼴': '广',
'⼵': '廴',
'⼶': '廾',
'⼷': '弋',
'⼸': '弓',
'⼹': '彐',
'⼺': '彡',
'⼻': '彳',
'⼼': '心',
'⼽': '戈',
'⼾': '戸',
'⼿': '手',
'⽀': '支',
'⽁': '攴',
'⽂': '文',
'⽃': '斗',
'⽄': '斤',
'⽅': '方',
'⽆': '无',
'⽇': '日',
'⽈': '曰',
'⽉': '月',
'⽊': '木',
'⽋': '欠',
'⽌': '止',
'⽍': '歹',
'⽎': '殳',
'⽏': '毋',
'⽐': '比',
'⽑': '毛',
'⽒': '氏',
'⽓': '气',
'⽔': '水',
'⽕': '火',
'⽖': '爪',
'⽗': '父',
'⽘': '爻',
'⽙': '爿',
'⽚': '片',
'⽛': '牙',
'⽜': '牛',
'⽝': '犬',
'⽞': '玄',
'⽟': '玉',
'⽠': '瓜',
'⽡': '瓦',
'⽢': '甘',
'⽣': '生',
'⽤': '用',
'⽥': '田',
'⽦': '疋',
'⽧': '疒',
'⽨': '癶',
'⽩': '白',
'⽪': '皮',
'⽫': '皿',
'⽬': '目',
'⽭': '矛',
'⽮': '矢',
'⽯': '石',
'⽰': '示',
'⽱': '禸',
'⽲': '禾',
'⽳': '穴',
'⽴': '立',
'⽵': '竹',
'⽶': '米',
'⽷': '糸',
'⽸': '缶',
'⽹': '网',
'⽺': '羊',
'⽻': '羽',
'⽼': '老',
'⽽': '而',
'⽾': '耒',
'⽿': '耳',
'⾀': '聿',
'⾁': '肉',
'⾂': '臣',
'⾃': '自',
'⾄': '至',
'⾅': '臼',
'⾆': '舌',
'⾇': '舛',
'⾈': '舟',
'⾉': '艮',
'⾊': '色',
'⾋': '艸',
'⾌': '虍',
'⾍': '虫',
'⾎': '血',
'⾏': '行',
'⾐': '衣',
'⾑': '襾',
'⾒': '見',
'⾓': '角',
'⾔': '言',
'⾕': '谷',
'⾖': '豆',
'⾗': '豕',
'⾘': '豸',
'⾙': '貝',
'⾚': '赤',
'⾛': '走',
'⾜': '足',
'⾝': '身',
'⾞': '車',
'⾟': '辛',
'⾠': '辰',
'⾡': '辵',
'⾢': '邑',
'⾣': '酉',
'⾤': '釆',
'⾥': '里',
'⾦': '金',
'⾨': '門',
'⾩': '阜',
'⾪': '隶',
'⾫': '隹',
'⾬': '雨',
'⾭': '靑',
'⾮': '非',
'⾯': '面',
'⾰': '革',
'⾱': '韋',
'⾲': '韭',
'⾳': '音',
'⾴': '頁',
'⾵': '風',
'⾶': '飛',
'⾷': '食',
'⾸': '首',
'⾹': '香',
'⾺': '馬',
'⾻': '骨',
'⾼': '高',
'⾽': '髟',
'⾾': '鬥',
'⾿': '鬯',
'⿀': '鬲',
'⿂': '魚',
'⿃': '鳥',
'⿄': '鹵',
'⿅': '鹿',
'⿆': '麥',
'⿇': '麻',
'⿈': '黃',
'⿉': '黍',
'⿊': '黒',
'⿋': '黹',
'⿌': '黽',
'⿍': '鼎',
'⿎': '鼓',
'⿏': '鼠',
'⿐': '鼻',
'⿑': '齊',
'⿒': '齒',
'⿓': '龍',
'⿔': '龜',
'⿕': '龠',
};
// 変換テーブルを正規表現に変換する
const tableRegExp = new RegExp(Object.keys(table).join('|'), 'g');
/**
* 渡された文字列に含まれる康煕部首と CJK 部首補助を正規化する。
*
* @param {string} string - 正規化する文字列
* @returns {string} 正規化された文字列
*/
const normalizeKanji = (string) =>
string.replaceAll(tableRegExp, (match) => table[match]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment