From 3d2e6185c937450eacb834bd868be476c4025849 Mon Sep 17 00:00:00 2001 From: tackchen Date: Tue, 8 Sep 2020 18:05:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=202.2.5=20=E5=81=8F=E6=97=81=E9=83=A8?= =?UTF-8?q?=E9=A6=96=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 220 +- docs/.vuepress/config.js | 5 + docs/doc/idiom.md | 2 + docs/doc/radical.md | 48 + docs/doc/xhy.md | 2 + docs/guide/README.md | 12 +- docs/guide/start.md | 12 +- docs/guide/version.md | 21 +- .../js/{10.6fe8a37b.js => 10.35940bd6.js} | 2 +- docs/v2/assets/js/11.5f7eeac4.js | 1 + docs/v2/assets/js/11.afec1f15.js | 1 - .../js/{12.d168a5e4.js => 12.077923da.js} | 2 +- docs/v2/assets/js/14.793898e3.js | 1 + .../js/{14.0ea02f06.js => 15.4b7779c5.js} | 2 +- .../js/{15.4dd87a78.js => 16.7f808694.js} | 2 +- docs/v2/assets/js/16.ad93db03.js | 1 - docs/v2/assets/js/17.a5cba3ff.js | 1 + docs/v2/assets/js/18.56e78ae6.js | 1 - .../js/{17.b4b4c0f9.js => 18.91861afe.js} | 2 +- docs/v2/assets/js/19.43f4edea.js | 1 - docs/v2/assets/js/19.f46096eb.js | 1 + docs/v2/assets/js/20.490147a5.js | 1 + docs/v2/assets/js/21.45301e81.js | 1 - .../js/{20.1bd42485.js => 21.e07d886f.js} | 2 +- docs/v2/assets/js/22.16178b4d.js | 1 + docs/v2/assets/js/22.fdca0c28.js | 1 - docs/v2/assets/js/23.7bc08b9f.js | 1 + .../js/{23.c736cefc.js => 24.213eeff8.js} | 2 +- .../js/{4.fcf3f00c.js => 4.828d46cb.js} | 2 +- .../js/{5.39b1109a.js => 5.207091e3.js} | 2 +- .../js/{6.7bf56da2.js => 6.dfd0aa9a.js} | 2 +- .../js/{8.c52e8de4.js => 8.fe6aa719.js} | 2 +- .../js/{9.a1c7f0bf.js => 9.18ff6ea2.js} | 2 +- .../js/{app.b0052b42.js => app.1ef4e9a2.js} | 6 +- docs/v2/doc/cnchar.html | 10 +- docs/v2/doc/draw.html | 12 +- docs/v2/doc/idiom.html | 12 +- docs/v2/doc/order.html | 10 +- docs/v2/doc/poly.html | 10 +- docs/v2/doc/radical.html | 98 + docs/v2/doc/tool.html | 14 +- docs/v2/doc/trad.html | 10 +- docs/v2/doc/xhy.html | 16 +- docs/v2/guide/index.html | 10 +- docs/v2/guide/start.html | 20 +- docs/v2/guide/version.html | 10 +- docs/v2/index.html | 8 +- helper/README.en.md | 151 +- helper/README.md | 153 +- helper/build-npm.js | 9 + helper/version.md | 5 +- npm/all/cnchar.all.min.js | 2 +- npm/all/index.js | 4 +- npm/all/package.json | 16 +- npm/cnchar/README.md | 220 +- npm/cnchar/cnchar.min.js | 2 +- npm/cnchar/index.d.ts | 3 +- npm/cnchar/package.json | 2 +- npm/cnchar/tool.js | 2 +- npm/cnchar/version.js | 2 +- npm/draw/README.md | 220 +- npm/draw/package.json | 2 +- npm/hanzi-util-base/hanzi.base.min.js | 2 +- npm/hanzi-util-base/index.d.ts | 3 +- npm/hanzi-util-base/package.json | 4 +- npm/hanzi-util/hanzi.util.min.js | 2 +- npm/hanzi-util/package.json | 4 +- npm/idiom/README.md | 220 +- npm/idiom/package.json | 2 +- npm/order/README.md | 220 +- npm/order/package.json | 2 +- npm/poly/README.md | 220 +- npm/poly/package.json | 2 +- npm/radical/LICENSE | 23 + npm/radical/README.md | 1307 +++ npm/radical/cnchar.radical.min.js | 2 +- npm/radical/index.d.ts | 15 + npm/radical/index.js | 36 + npm/radical/package.json | 29 + npm/radical/radical.js | 54 + npm/radical/radicals-generator.js | 195 + npm/radical/radicals.json | 7096 +++++++++++++++++ npm/trad/README.md | 220 +- npm/trad/package.json | 2 +- npm/xhy/README.md | 220 +- npm/xhy/package.json | 2 +- package.json | 2 +- public/index.js | 1 + src/main/index.d.ts | 3 +- src/main/tool.js | 2 + src/main/version.js | 2 +- src/plugin/radical/index.d.ts | 15 + src/plugin/radical/index.js | 19 +- src/plugin/radical/radical.js | 44 + src/plugin/radical/radicals-generator.js | 10 +- test/index.js | 6 +- test/test.config.js | 17 + 97 files changed, 10602 insertions(+), 799 deletions(-) create mode 100644 docs/doc/radical.md rename docs/v2/assets/js/{10.6fe8a37b.js => 10.35940bd6.js} (99%) create mode 100644 docs/v2/assets/js/11.5f7eeac4.js delete mode 100644 docs/v2/assets/js/11.afec1f15.js rename docs/v2/assets/js/{12.d168a5e4.js => 12.077923da.js} (99%) create mode 100644 docs/v2/assets/js/14.793898e3.js rename docs/v2/assets/js/{14.0ea02f06.js => 15.4b7779c5.js} (99%) rename docs/v2/assets/js/{15.4dd87a78.js => 16.7f808694.js} (97%) delete mode 100644 docs/v2/assets/js/16.ad93db03.js create mode 100644 docs/v2/assets/js/17.a5cba3ff.js delete mode 100644 docs/v2/assets/js/18.56e78ae6.js rename docs/v2/assets/js/{17.b4b4c0f9.js => 18.91861afe.js} (50%) delete mode 100644 docs/v2/assets/js/19.43f4edea.js create mode 100644 docs/v2/assets/js/19.f46096eb.js create mode 100644 docs/v2/assets/js/20.490147a5.js delete mode 100644 docs/v2/assets/js/21.45301e81.js rename docs/v2/assets/js/{20.1bd42485.js => 21.e07d886f.js} (99%) create mode 100644 docs/v2/assets/js/22.16178b4d.js delete mode 100644 docs/v2/assets/js/22.fdca0c28.js create mode 100644 docs/v2/assets/js/23.7bc08b9f.js rename docs/v2/assets/js/{23.c736cefc.js => 24.213eeff8.js} (99%) rename docs/v2/assets/js/{4.fcf3f00c.js => 4.828d46cb.js} (97%) rename docs/v2/assets/js/{5.39b1109a.js => 5.207091e3.js} (84%) rename docs/v2/assets/js/{6.7bf56da2.js => 6.dfd0aa9a.js} (85%) rename docs/v2/assets/js/{8.c52e8de4.js => 8.fe6aa719.js} (76%) rename docs/v2/assets/js/{9.a1c7f0bf.js => 9.18ff6ea2.js} (99%) rename docs/v2/assets/js/{app.b0052b42.js => app.1ef4e9a2.js} (62%) create mode 100644 docs/v2/doc/radical.html create mode 100644 npm/radical/LICENSE create mode 100644 npm/radical/README.md create mode 100644 npm/radical/index.d.ts create mode 100644 npm/radical/index.js create mode 100644 npm/radical/package.json create mode 100644 npm/radical/radical.js create mode 100644 npm/radical/radicals-generator.js create mode 100644 npm/radical/radicals.json create mode 100644 src/plugin/radical/index.d.ts create mode 100644 src/plugin/radical/radical.js diff --git a/README.md b/README.md index a13bb2d..8b18be5 100644 --- a/README.md +++ b/README.md @@ -54,20 +54,21 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) - * [5.9 汉字、拼音工具方法](#59-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - + [5.9.1 查询拼音详细信息: spellInfo](#591-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) - + [5.9.2 拼音音调操作: transformTone](#592-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) - + [5.9.3 是否是汉字: isCnChar](#593-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) - + [5.9.4 比较拼音(汉字)大小: compareSpell](#594-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) - + [5.9.5 比较汉字笔画数大小: compareStroke](#595-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) - + [5.9.6 根据拼音排序: sortSpell](#596-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) - + [5.9.7 根据笔画数排序: sortStroke](#597-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) - * [5.10 其他 api](#510-%E5%85%B6%E4%BB%96-api) - + [5.10.1 .use()](#5101-use) - + [5.10.2 .type](#5102-type) - + [5.10.3 .check](#5103-check) - + [5.10.4 .version](#5104-version) - + [5.10.5 .plugins](#5105-plugins) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) - [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) @@ -76,24 +77,26 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) - * [6.8 使用实例大全:](#68-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) - + [6.8.0 安装使用](#680-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) - + [6.8.1 cnchar 基础库功能](#681-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.2 cnchar-poly 库功能](#682-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.3 cnchar-order 库功能](#683-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.4 cnchar-trad 库功能](#684-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) - - [6.8.4.1 convert 字体转换](#6841-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) - - [6.8.4.2 spell 和 stroke 方法](#6842-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) - + [6.8.5 cnchar-idiom 库功能](#685-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.6 cnchar-xhy 库功能](#686-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.7 工具方法](#687-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - - [6.8.7.1 spellInfo](#6871-spellinfo) - - [6.8.7.2 isCnChar](#6872-iscnchar) - - [6.8.7.3 transformTone](#6873-transformtone) - - [6.8.7.4 compareSpell](#6874-comparespell) - - [6.8.7.5 compareStroke](#6875-comparestroke) - - [6.8.7.6 sortSpell](#6876-sortspell) - - [6.8.7.7 sortStroke](#6877-sortstroke) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) - [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 8cee393..a68fa11 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -28,6 +28,7 @@ module.exports = { {text: 'cnchar-draw: 汉字可视化', link: '/doc/draw'}, {text: 'cnchar-idiom: 成语', link: '/doc/idiom'}, {text: 'cnchar-xhy: 歇后语', link: '/doc/xhy'}, + {text: 'cnchar-radical: 偏旁部首', link: '/doc/radical'}, {text: '工具方法', link: '/doc/tool'}, ], }, @@ -81,6 +82,10 @@ module.exports = { title: 'cnchar-xhy', path: 'xhy', }, + { + title: 'cnchar-radical', + path: 'radical', + }, { title: '工具方法', path: 'tool', diff --git a/docs/doc/idiom.md b/docs/doc/idiom.md index 90d68b5..7bd98c4 100644 --- a/docs/doc/idiom.md +++ b/docs/doc/idiom.md @@ -22,6 +22,8 @@ cnchar.idiom('shang', 'spell'); // ["伤风败化", "伤风败俗", ...] cnchar.idiom('shang4', 'spell', 'tone'); // ["上兵伐谋", "上不着天,下不着地", ... ] ``` +使用cdn引用时,会在window对向上暴露 `CncharIdiom` 对象 + ## 2. idiom 参数 参数调用如下,value表示查询对象,可以试拼音汉字笔画数,所有 arg 参数都是可选的 diff --git a/docs/doc/radical.md b/docs/doc/radical.md new file mode 100644 index 0000000..77e8849 --- /dev/null +++ b/docs/doc/radical.md @@ -0,0 +1,48 @@ +## 1. 介绍 + +cnchar在2.2.5加入了偏旁部首功能,启用该功能需要安装 `cnchar-radical` 功能库,该库可以独立于cnchar主库运行 + +感谢 `kewell-tsao` 提供的 pr + +使用方式如下: + +```ts +cnchar.radical(text:string | Array, ...radicalArgs: Array): string | Array; +``` + +看一个具体例子 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +// 返回数组 +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +// 传入数组会默认返回数组 +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +使用cdn引用时,会在window对向上暴露 `CncharRadical` 对象 + +## 2. radical 参数 + +参数调用如下,value表示需要查询偏旁的汉字,可以是字符串或数组 + +```js +cnchar.radical(value,arg1,arg2,...); +``` + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :-----: | :----: | :------: | :---: | :---: | +| array | 是否返回数组 | 否 | -- | 当传入为数组时默认返回数组 | + +## 3. 实例 + + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` diff --git a/docs/doc/xhy.md b/docs/doc/xhy.md index 1059550..9b55ae1 100644 --- a/docs/doc/xhy.md +++ b/docs/doc/xhy.md @@ -22,6 +22,8 @@ cnchar.xhy('大水', 'fuzzy', 'answer'); // ['泥沙俱下', '后浪推前浪', cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second'); // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` +使用cdn引用时,会在window对向上暴露 `CncharXHY` 对象 + ## 2. xhy 参数 参数调用如下,value表示歇后语查询对象,可以是歇后语的第一句或第二句,所有 arg 参数都是可选的 diff --git a/docs/guide/README.md b/docs/guide/README.md index 99aa6e9..4784867 100644 --- a/docs/guide/README.md +++ b/docs/guide/README.md @@ -46,11 +46,12 @@ sidebarDepth: 0 //吐槽:这里设置0无效!只能设置1或2! 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ## 3. 概览 @@ -66,6 +67,7 @@ sidebarDepth: 0 //吐槽:这里设置0无效!只能设置1或2! | [cnchar-draw](/cnchar/v2/doc/draw) | 绘制笔画库 | 支持可视化绘制汉字,有 normal,animation,stroke,test 四种模式可选,该库仅在浏览器环境下可用 | 2.1+ | | [cnchar-idiom](/cnchar/v2/doc/idiom) | 成语库 | 支持成语查询等功能 | 2.2+ | | [cnchar-xhy](/cnchar/v2/doc/xhy) | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| [cnchar-radical](/cnchar/v2/doc/radical) | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ |
diff --git a/docs/guide/start.md b/docs/guide/start.md index fd447c7..fbdb6c3 100644 --- a/docs/guide/start.md +++ b/docs/guide/start.md @@ -1,7 +1,7 @@ ## 1. npm安装 -cnchar包含了一个基本库和六个功能库,用于实现不同的功能,您可以按需安装其中的功能库,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +cnchar包含了一个基本库和六个功能库,用于实现不同的功能,您可以按需安装其中的功能库,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) 安装[主库](https://npmjs.com/package/cnchar): @@ -15,7 +15,7 @@ npm i cnchar
-npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical
@@ -31,6 +31,7 @@ npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; + import 'cnchar-radical';
@@ -45,7 +46,8 @@ npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy import trad from 'cnchar-trad'; import idiom from 'cnchar-idiom'; import xhy from 'cnchar-xhy'; - cnchar.use(poly, order, trad, idiom, xhy); + import radical from 'cnchar-radical'; + cnchar.use(poly, order, trad, idiom, xhy, radical); @@ -60,7 +62,8 @@ commonjs 模块 var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); - cnchar.use(poly, order, trad, idiom, xhy); + var radical = require('cnchar-radical'); + cnchar.use(poly, order, trad, idiom, xhy, radical); @@ -77,6 +80,7 @@ commonjs 模块 <script src="https://cdn.jsdelivr.net/npm/cnchar-trad/cnchar.trad.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/cnchar-draw/cnchar.draw.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/cnchar-idiom/cnchar.idiom.min.js"> </script> + <script src="https://cdn.jsdelivr.net/npm/cnchar-radical/cnchar.radical.min.js"> </script> <script src="https://cdn.jsdelivr.net/npm/cnchar-xhy/cnchar.xhy.min.js"> </script> diff --git a/docs/guide/version.md b/docs/guide/version.md index 0650482..ad5a8eb 100644 --- a/docs/guide/version.md +++ b/docs/guide/version.md @@ -80,7 +80,7 @@ 1. 修复cnchar-all及cnchar-draw库在非浏览器环境会报错的bug 2. 修复 draw库和main库在ts环境中引用的异常 -## 2.2.0 [2020/6/4] +## 2.2.0 1. 增加cnchar-idiom 成语库 2. 增加cnchar-xhy 歇后语库 3. 增加transformTone,isCnchar,compareSpell,compareStroke,sortSpell,sortStroke工具方法,方便开发者更便捷的操作拼音和汉字 @@ -88,4 +88,21 @@ 5. 鸟字增加默认读音 6. 彷徨读音修正 7. cnchar-draw 增加 Promise-polyfill -8. 文档增加Object.assign-polyfill \ No newline at end of file +8. 文档增加Object.assign-polyfill + +## 2.2.1 +1. 修复ts声明文件的bug +2. ts声明文件增加字符串扩展方法 +3. 修复构建npm的bug + +## 2.2.2 +1. 增加几个多音字的默认读音 + +## 2.2.3 +1. 修复draw库不同绘制实例样式会干扰的bug + +## 2.2.4 +1. 增加 红 字的默认读音 + +## 2.2.5 +1. 增加cnchar-radical, 偏旁部首插件库 \ No newline at end of file diff --git a/docs/v2/assets/js/10.6fe8a37b.js b/docs/v2/assets/js/10.35940bd6.js similarity index 99% rename from docs/v2/assets/js/10.6fe8a37b.js rename to docs/v2/assets/js/10.35940bd6.js index 74a2389..21330a2 100644 --- a/docs/v2/assets/js/10.6fe8a37b.js +++ b/docs/v2/assets/js/10.35940bd6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{638:function(r,t,n){"use strict";n.r(t);var e=n(21),a=Object(e.a)({},(function(){var r=this,t=r.$createElement,n=r._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[n("h2",{attrs:{id:"_1-介绍"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_1-介绍"}},[r._v("#")]),r._v(" 1. 介绍")]),r._v(" "),n("p",[n("code",[r._v("cnchar-draw")]),r._v(" 库的汉字绘制功能封装基于 "),n("a",{attrs:{href:"https://github.com/chanind/hanzi-writer",target:"_blank",rel:"noopener noreferrer"}},[r._v("hanzi-writer"),n("OutboundLink")],1),r._v(", 特此表示感谢!")]),r._v(" "),n("p",[n("code",[r._v("cnchar-draw")]),r._v(" 库是用于支持可视化绘制汉字,有 normal,animation,stroke,test 四种模式可选,该库仅在浏览器环境下可用,且该库支持脱离cnchar使用")]),r._v(" "),n("p",[r._v("另外,该库支持繁体字且不依赖 "),n("code",[r._v("cnahr-trad")]),r._v("库")]),r._v(" "),n("p",[r._v("draw 的参数比较繁多,首先需要理解的是,draw 分为四种绘制模式:")]),r._v(" "),n("ul",[n("li",[r._v("normal: 常规绘制")]),r._v(" "),n("li",[r._v("animation: 带有绘制动画,支持连续绘制、同时绘制、循环绘制")]),r._v(" "),n("li",[r._v("stroke: 按汉字笔顺单步绘制")]),r._v(" "),n("li",[r._v("test: 测试模式,用户可以在容器内绘制汉字,cnchar-draw会检测是否绘制正确")])]),r._v(" "),n("p",[r._v("具体使用也可以参考"),n("code",[r._v("cnchar-draw")]),r._v("的类型声明文件:"),n("a",{attrs:{href:"https://github.com/theajack/cnchar/blob/master/src/plugin/draw/index.d.ts",target:"_blank",rel:"noopener noreferrer"}},[r._v("cnchar.draw.d.ts"),n("OutboundLink")],1)]),r._v(" "),n("p",[r._v("npm安装")]),r._v(" "),n("div",[n("highlight-code",[r._v("\nnpm i cnchar-draw\n ")])],1),r._v(" "),n("p",[r._v("cdn使用")]),r._v(" "),n("div",[n("highlight-code",{attrs:{lang:"html"}},[r._v('\n + diff --git a/docs/v2/doc/draw.html b/docs/v2/doc/draw.html index a03784b..33508e8 100644 --- a/docs/v2/doc/draw.html +++ b/docs/v2/doc/draw.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. 介绍

cnchar-draw 库的汉字绘制功能封装基于 hanzi-writer, 特此表示感谢!

cnchar-draw 库是用于支持可视化绘制汉字,有 normal,animation,stroke,test 四种模式可选,该库仅在浏览器环境下可用,且该库支持脱离cnchar使用

另外,该库支持繁体字且不依赖 cnahr-trad

draw 的参数比较繁多,首先需要理解的是,draw 分为四种绘制模式:

  • normal: 常规绘制
  • animation: 带有绘制动画,支持连续绘制、同时绘制、循环绘制
  • stroke: 按汉字笔顺单步绘制
  • test: 测试模式,用户可以在容器内绘制汉字,cnchar-draw会检测是否绘制正确

具体使用也可以参考cnchar-draw的类型声明文件:cnchar.draw.d.ts

npm安装

npm i cnchar-draw

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-draw/cnchar.draw.min.js"></script>

使用

import cnchar from 'cnchar';
+  

# 1. 介绍

cnchar-draw 库的汉字绘制功能封装基于 hanzi-writer, 特此表示感谢!

cnchar-draw 库是用于支持可视化绘制汉字,有 normal,animation,stroke,test 四种模式可选,该库仅在浏览器环境下可用,且该库支持脱离cnchar使用

另外,该库支持繁体字且不依赖 cnahr-trad

draw 的参数比较繁多,首先需要理解的是,draw 分为四种绘制模式:

  • normal: 常规绘制
  • animation: 带有绘制动画,支持连续绘制、同时绘制、循环绘制
  • stroke: 按汉字笔顺单步绘制
  • test: 测试模式,用户可以在容器内绘制汉字,cnchar-draw会检测是否绘制正确

具体使用也可以参考cnchar-draw的类型声明文件:cnchar.draw.d.ts

npm安装

npm i cnchar-draw

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-draw/cnchar.draw.min.js"></script>

使用

import cnchar from 'cnchar';
 import draw from 'cnchar-draw';
 cnchar.use(draw); // use 在浏览器环境中非必须

脱离cnchar 独立使用

import draw from 'cnchar-draw';
 draw('你好')

# 2. 使用

引入cnchar-draw之后,cnchar上会新增一个draw方法,使用方式如下:

cnchar.draw('你好', options); // options 为可选参数

以下是 options 的所有可选参数及描述,具体使用可以在 JSBox 上自行在线尝试

declare interface DrawOption {
@@ -119,7 +123,7 @@ draw('你好')

# 4. 笔顺绘制实例

type=stroke时,笔顺模式启用,该模式会单笔绘制汉字的每一个笔划,并且为每一个笔划生成一个绘制块

stroke-draw
运行结果
隐藏结果
Powered by JSBox

# 5. 动画绘制模式

type=animation时,动画模式启用,该模式会按笔顺用动画绘制每一个笔划

animation-draw
运行结果
隐藏结果
Powered by JSBox

# 6. 测验模式

type=test时,测验模式启用,该模式用户可以在容器内绘制汉字,cnchar-draw会检测是否绘制正确

请用鼠标在绘制出的测验两个字上按顺序画上笔画

test-draw
运行结果
隐藏结果
- Powered by JSBox

# 7. 微信小程序中使用

该库由 HanziWriter 驱动,目前仅支持在web环境下使用,如需微信小程序使用请参考 HanziWriter API

最后更新于: 4/14/2020, 1:02:43 AM

# 7. 微信小程序中使用

该库由 HanziWriter 驱动,目前仅支持在web环境下使用,如需微信小程序使用请参考 HanziWriter API

最后更新于: 8/28/2020, 6:09:34 PM

# 1 介绍

cnchar在2.2.0加入了成语功能,启用该功能需要安装 cnchar-idiom 功能库,该库可以独立于cnchar主库运行

使用方式如下:

cnchar.idiom(text:string, ...idiomArgs: Array<idiomArg>):Array<string>;
+  

# 1 介绍

cnchar在2.2.0加入了成语功能,启用该功能需要安装 cnchar-idiom 功能库,该库可以独立于cnchar主库运行

使用方式如下:

cnchar.idiom(text:string, ...idiomArgs: Array<idiomArg>):Array<string>;
 

看一个具体例子

// 根据汉字查询成语,末尾的空格可以省略
 cnchar.idiom(['五', '', '十', '']); // ['五风十雨', '五光十色']
 // 根据笔画数查询成语,0表示匹配任意笔画,末尾的0可以省略
@@ -77,7 +81,7 @@ cnchar.idiom
 cnchar.idiom('shang', 'spell'); // ["伤风败化", "伤风败俗", ...]
 // 带音调
 cnchar.idiom('shang4', 'spell', 'tone'); // ["上兵伐谋", "上不着天,下不着地", ... ]
-

# 2. idiom 参数

参数调用如下,value表示查询对象,可以试拼音汉字笔画数,所有 arg 参数都是可选的

cnchar.idiom(value,arg1,arg2,...);
+

使用cdn引用时,会在window对向上暴露 CncharIdiom 对象

# 2. idiom 参数

参数调用如下,value表示查询对象,可以试拼音汉字笔画数,所有 arg 参数都是可选的

cnchar.idiom(value,arg1,arg2,...);
 
参数 作用 是否默认 依赖库 备注
char 根据汉字查询成语 -- 默认值无需调用
stroke 根据笔画数查询成语 -- 优先级高于char
spell 根据拼音查询成语 -- 优先级高于stroke
tone 启用拼音音调查询 -- 仅在spell模式下生效

注:优先级 spell > stroke > char

# 3. 实例

该库为cnchar扩展了成语功能

cnchar.idiom(['五', '', '十', '']) // ['五风十雨', '五光十色']
 cnchar.idiom([4, 6, 2, 6], 'stroke') // ['五光十色']
 cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ]
@@ -91,6 +95,6 @@ cnchar.idiom
       
       →
     

- + diff --git a/docs/v2/doc/order.html b/docs/v2/doc/order.html index 9549e1f..6c2f8af 100644 --- a/docs/v2/doc/order.html +++ b/docs/v2/doc/order.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. 介绍

cnchar-order 库是用于支持获取汉字笔顺及其名称、形状,除此之外,该库还提供一个orderToWord方法,可以根据笔画序列推出原汉字,以及提供一个汉字所有笔划的json属性

引入该库之后,cnchar.stroke() 方法才会支持 order 等参数

npm安装

npm i cnchar-order

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-order/cnchar.order.min.js"></script>

使用

import cnchar from 'cnchar';
+  

# 1. 介绍

cnchar-order 库是用于支持获取汉字笔顺及其名称、形状,除此之外,该库还提供一个orderToWord方法,可以根据笔画序列推出原汉字,以及提供一个汉字所有笔划的json属性

引入该库之后,cnchar.stroke() 方法才会支持 order 等参数

npm安装

npm i cnchar-order

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-order/cnchar.order.min.js"></script>

使用

import cnchar from 'cnchar';
 import order from 'cnchar-order';
 cnchar.use(order); // use 在浏览器环境中非必须

# 2. stroke参数

参数 作用 是否默认 依赖库 备注
array 返回数组 -- 使用 cnchar-order 且启用 order 参数后该参数被忽略
order 启用笔画顺序 cnchar-order --
letter 使用笔画顺序字母序列 cnchar-order 当启用 order 后,该值是默认值
detail 使用笔画顺序详情作为返回值,每个汉字对应一个 json cnchar-order 优先级小于 letter
shape 使用笔画形状作为返回值 cnchar-order 优先级小于 detail
name 使用笔画名称作为返回值 cnchar-order 优先级小于 shape
count 使用笔画数作为返回值 cnchar-poly 优先级小于 name
simple 是否禁用繁体字的笔画功能 cnchar-trad 使用 cnchar-trad 之后,默认对繁体字启用笔画功能,该参数用于禁用繁体字笔画功能

以上五种模式优先级为 letter < detail < shape < name < count

# 3. 实例

以下演示几个多音词的例子

order
运行结果
隐藏结果
Powered by JSBox

笔划形状模式(shape)由于系统原因,某些形状字符在 ios和macos上无法显示

# 4. 笔画推出原汉字(orderToWord)

# 4.1 使用

当引入 cnchar-order 功能库(版本 2.0.2 及以上)之后,cnchar 就支持了根据笔画名称序列推出原汉字的功能,使用方式如下:

cnchar.orderToWord(orderNames[,...args]);

orderNames 是笔画名称序列, 可以是空格分隔的笔画名称字符串或笔画名称数组

args 是参数列表,可选值有 ['match','matchorder','contain','start','array','simple'], 使用 cnchar.type.orderToWord 可以查看可选值, 详情请见 4.2

以下是一个简单的使用实例:

orderToWord
运行结果
隐藏结果
@@ -83,6 +87,6 @@ cnchar.use(order); // use 在浏览器环境中非必 →

- + diff --git a/docs/v2/doc/poly.html b/docs/v2/doc/poly.html index 770fc4d..e41dc02 100644 --- a/docs/v2/doc/poly.html +++ b/docs/v2/doc/poly.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. 介绍

cnchar-poly 库是用于支持多音词的库,该库本身并不提供新的api

引入该库之后,cnchar.spell() 方法才会支持多音词,否则对于多音字会返回默认读音

npm安装

npm i cnchar-poly

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js"></script>

使用

import cnchar from 'cnchar';
+  

# 1. 介绍

cnchar-poly 库是用于支持多音词的库,该库本身并不提供新的api

引入该库之后,cnchar.spell() 方法才会支持多音词,否则对于多音字会返回默认读音

npm安装

npm i cnchar-poly

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js"></script>

使用

import cnchar from 'cnchar';
 import poly from 'cnchar-poly';
 cnchar.use(poly); // use 在浏览器环境中非必须

# 2. 实例

以下演示几个多音词的例子

poly
运行结果
隐藏结果
Powered by JSBox

由于多音词依赖分词与词库,且cnchar是一个静态的js库,所以可能会有诸多不准确的读音

如果遇到不准缺的多音词,欢迎提issue或pr

最后更新于: 4/14/2020, 1:02:43 AM
- + diff --git a/docs/v2/doc/radical.html b/docs/v2/doc/radical.html new file mode 100644 index 0000000..aa9919d --- /dev/null +++ b/docs/v2/doc/radical.html @@ -0,0 +1,98 @@ + + + + + + 1. 介绍 | cnchar + + + + + + + + +

# 1. 介绍

cnchar在2.2.5加入了偏旁部首功能,启用该功能需要安装 cnchar-radical 功能库,该库可以独立于cnchar主库运行

感谢 kewell-tsao 提供的 pr

使用方式如下:

cnchar.radical(text:string | Array<string>, ...radicalArgs: Array<radicalArg>): string | Array<string>;
+

看一个具体例子

cnchar.radical('你'); // "亻",
+cnchar.radical('你好呀'); // "亻女口"
+// 返回数组
+cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"]
+// 传入数组会默认返回数组
+cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"]
+

使用cdn引用时,会在window对向上暴露 CncharRadical 对象

# 2. radical 参数

参数调用如下,value表示需要查询偏旁的汉字,可以是字符串或数组

cnchar.radical(value,arg1,arg2,...);
+
参数 作用 是否默认 依赖库 备注
array 是否返回数组 -- 当传入为数组时默认返回数组

# 3. 实例

该库为cnchar扩展了偏旁部首功能

cnchar.radical('你'); // "亻",
+cnchar.radical('你好呀'); // "亻女口"
+cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"]
+cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"]
+
+ + + diff --git a/docs/v2/doc/tool.html b/docs/v2/doc/tool.html index bc72eac..4e8abc7 100644 --- a/docs/v2/doc/tool.html +++ b/docs/v2/doc/tool.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. 介绍

cnchar 将库内部使用的一些操作拼音和汉字的方法整理暴露出来,方便开发者便捷高效的操作拼音和汉字

# 2 查询拼音详细信息: spellInfo

# 2.1 api使用

spellInfo 方法用于查询拼音的详细信息,用法如下:

cnchar.spellInfo(spell);

该方法返回一个json:

{
+  

# 1. 介绍

cnchar 将库内部使用的一些操作拼音和汉字的方法整理暴露出来,方便开发者便捷高效的操作拼音和汉字

# 2 查询拼音详细信息: spellInfo

# 2.1 api使用

spellInfo 方法用于查询拼音的详细信息,用法如下:

cnchar.spellInfo(spell);

该方法返回一个json:

{
     "spell": string, // 去音调的拼音小写
     "tone": number, // 音调 0-5
     "index": number, // 音调位置
@@ -135,9 +139,9 @@ cnchar.sortS
 cnchar.sortStroke(['一', '三', '二'], 'desc') // ['三', '二', '一']
 
最后更新于: 6/4/2020, 2:06:00 PM
- + diff --git a/docs/v2/doc/trad.html b/docs/v2/doc/trad.html index 5f8e9a1..b60129d 100644 --- a/docs/v2/doc/trad.html +++ b/docs/v2/doc/trad.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. 介绍

cnchar-trad 库是用于繁体字,除此之外,该库还提供繁体、简体、火星文之间的相互转换

引入该库之后,cnchar的所有api都支持 simpletrad参数,用于只使用简体或繁体,默认两种字体都使用

npm安装

npm i cnchar-trad

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-trad/cnchar.trad.min.js"></script>

使用

import cnchar from 'cnchar';
+  

# 1. 介绍

cnchar-trad 库是用于繁体字,除此之外,该库还提供繁体、简体、火星文之间的相互转换

引入该库之后,cnchar的所有api都支持 simpletrad参数,用于只使用简体或繁体,默认两种字体都使用

npm安装

npm i cnchar-trad

cdn使用

<script src="https://cdn.jsdelivr.net/npm/cnchar-trad/cnchar.trad.min.js"></script>

使用

import cnchar from 'cnchar';
 import trad from 'cnchar-trad';
 cnchar.use(trad); // use 在浏览器环境中非必须

# 2. 繁体字支持

以下演示几个繁体字支持的例子

trad
运行结果
隐藏结果
Powered by JSBox

# 3. 字体转换(convert)

引入 cnchar-trad 库之后,在cnchar上会生成一个 convert 对象,功能是支持字体转换,另外在string.prototype 上也会附加上对应的方法,用法如下:

cnchar.convert.simpleToTrad(string); // 简体 => 繁体
@@ -92,6 +96,6 @@ string.convertSparkToTrad();

以下是几个实例:

- + diff --git a/docs/v2/doc/xhy.html b/docs/v2/doc/xhy.html index c02ab00..f9603a1 100644 --- a/docs/v2/doc/xhy.html +++ b/docs/v2/doc/xhy.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. 介绍

cnchar在2.2.0加入了歇后语功能,启用该功能需要安装 cnchar-xhy 功能库,该库可以独立于cnchar主库运行

使用方式如下:

cnchar.xhy(text:string, ...xhyArgs: Array<xhyArg>):Array<string>;
+  

# 1. 介绍

cnchar在2.2.0加入了歇后语功能,启用该功能需要安装 cnchar-xhy 功能库,该库可以独立于cnchar主库运行

使用方式如下:

cnchar.xhy(text:string, ...xhyArgs: Array<xhyArg>):Array<string>;
 

看一个具体例子

// 精确查询
 cnchar.xhy('大水冲了龙王庙'); // ['大水冲了龙王庙-自家人不识自家人', '大水冲了龙王庙-一家人不认一家人'],
 // 模糊查询
@@ -77,7 +81,7 @@ cnchar.xhy.xhy('大水', 'fuzzy', 'answer');  // ['泥沙俱下', '后浪推前浪', ... ]
 // 根据歇后语后一句查询
 cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second'); // ['醉汉过铁索桥', '扶着醉汉过破桥']
-

# 2. xhy 参数

参数调用如下,value表示歇后语查询对象,可以是歇后语的第一句或第二句,所有 arg 参数都是可选的

cnchar.xhy(value,arg1,arg2,...);
+

使用cdn引用时,会在window对向上暴露 CncharXHY 对象

# 2. xhy 参数

参数调用如下,value表示歇后语查询对象,可以是歇后语的第一句或第二句,所有 arg 参数都是可选的

cnchar.xhy(value,arg1,arg2,...);
 
参数 作用 是否默认 依赖库 备注
fuzzy 是否支持模糊查询 -- 是否包含输入的字符串
answer 是否只输出答案 -- 默认是输出整句歇后语
second 是否是根据歇后语后一句查询 -- --

# 3. 实例

该库为cnchar扩展了歇后语功能

cnchar.xhy('大水冲了龙王庙') // ['大水冲了龙王庙-自家人不识自家人', '大水冲了龙王庙-一家人不认一家人']
 cnchar.xhy('大水', 'fuzzy') // ['江河里长大水-泥沙俱下', '江河发大水-后浪推前浪', ... ]
 cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', ... ]
@@ -86,11 +90,11 @@ cnchar.xhy
         cnchar-idiom
-       
-        工具方法
+       
+        cnchar-radical
       

- + diff --git a/docs/v2/guide/index.html b/docs/v2/guide/index.html index 4dbf1e7..03afe04 100644 --- a/docs/v2/guide/index.html +++ b/docs/v2/guide/index.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 简介


Version Downloads Size License TopLang issue

cnchar 是一款功能全面、多端支持的汉字拼音笔画 js 库

更新日志 | 应用:打字游戏 | 反馈错误/缺漏

# 1. 前言

感谢同学们对于 cnchar 的支持,由于 cnchar 词库来源于网络,虽然经过了本人的修改和扩充,但是还是难免有错误与缺漏之处,希望大家可以将使用中发现的错误与缺漏之处 反馈 给我或自行修改提交pr

我要反馈错误或缺漏

# 2. 功能

  1. 获取 汉字拼音 ,支持首字母、大小写、数组分割、备选 多音字 等功能
  2. 支持 多音词
  3. 支持 拼音音调
  4. 获取汉字 笔画数 、支持数组分割
  5. 获取汉字 笔画顺序 、笔画详细名称
  6. 支持可视化 绘制汉字笔画 、多种绘制模式可选
  7. 支持 简体字繁体字火星文 互转
  8. 支持 查找 某拼音的所有 汉字 ,繁体字,多音字
  9. 支持 查找 指定笔画数的所有 汉字 ,繁体字
  10. 支持 根据笔画顺序查询 汉字
  11. 支持 查询拼音的信息,包含声母、韵母、音调、音调位置的等
  12. 支持 繁体字 拼音、笔画数及以上所有功能,实现和简体字一样的功能
  13. 支持 成语 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语
  14. 支持 歇后语 查询功能,支持模糊查询
  15. 提供汉字工具方法,方便开发者更便捷高效地 操作拼音和汉字
  16. 体积小,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典)
  17. 多端可用,可用于 浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack...,支持所有 js 能运行的环境
  18. typescript支持,支持在typescript中调用
  19. 丰富的配置,按功能拆分成7个库按需取用

# 3. 概览

考虑到不同的需求,cnchar 的功能被拆分到以下七个库中,方便开发者按需取用:

名称 描述 功能 支持版本
cnchar 主 js 库,其他三个库依赖于这个库 含有简体字拼音、多音字、音调、笔画数等功能 --
cnchar-poly 多音词库 含有识别多音词功能 --
cnchar-order 笔画顺序库 含有识别笔画顺序、笔画名称、笔画形状等功能 --
cnchar-trad 繁体字库 支持繁体、火星、简体互转,支持繁体拼音笔画多音字全功能 --
cnchar-draw 绘制笔画库 支持可视化绘制汉字,有 normal,animation,stroke,test 四种模式可选,该库仅在浏览器环境下可用 2.1+
cnchar-idiom 成语库 支持成语查询等功能 2.2+
cnchar-xhy 歇后语库 支持歇后语查询等功能 2.2+
给个star!
最后更新于: 6/4/2020, 2:06:00 PM

# 简介


Version Downloads Size License TopLang issue

cnchar 是一款功能全面、多端支持的汉字拼音笔画 js 库

更新日志 | 应用:打字游戏 | 反馈错误/缺漏

# 1. 前言

感谢同学们对于 cnchar 的支持,由于 cnchar 词库来源于网络,虽然经过了本人的修改和扩充,但是还是难免有错误与缺漏之处,希望大家可以将使用中发现的错误与缺漏之处 反馈 给我或自行修改提交pr

我要反馈错误或缺漏

# 2. 功能

  1. 获取 汉字拼音 ,支持首字母、大小写、数组分割、备选 多音字 等功能
  2. 支持 多音词
  3. 支持 拼音音调
  4. 获取汉字 笔画数 、支持数组分割
  5. 获取汉字 笔画顺序 、笔画详细名称
  6. 支持可视化 绘制汉字笔画 、多种绘制模式可选
  7. 支持 简体字繁体字火星文 互转
  8. 支持 查找 某拼音的所有 汉字 ,繁体字,多音字
  9. 支持 查找 指定笔画数的所有 汉字 ,繁体字
  10. 支持 根据笔画顺序查询 汉字
  11. 支持 查询拼音的信息,包含声母、韵母、音调、音调位置的等
  12. 支持 繁体字 拼音、笔画数及以上所有功能,实现和简体字一样的功能
  13. 支持 成语 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语
  14. 支持 歇后语 查询功能,支持模糊查询
  15. 支持 偏旁部首 查询功能
  16. 提供汉字工具方法,方便开发者更便捷高效地 操作拼音和汉字
  17. 体积小,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典)
  18. 多端可用,可用于 浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack...,支持所有 js 能运行的环境
  19. typescript支持,支持在typescript中调用
  20. 丰富的配置,按功能拆分成7个库按需取用

# 3. 概览

考虑到不同的需求,cnchar 的功能被拆分到以下七个库中,方便开发者按需取用:

名称 描述 功能 支持版本
cnchar 主 js 库,其他三个库依赖于这个库 含有简体字拼音、多音字、音调、笔画数等功能 --
cnchar-poly 多音词库 含有识别多音词功能 --
cnchar-order 笔画顺序库 含有识别笔画顺序、笔画名称、笔画形状等功能 --
cnchar-trad 繁体字库 支持繁体、火星、简体互转,支持繁体拼音笔画多音字全功能 --
cnchar-draw 绘制笔画库 支持可视化绘制汉字,有 normal,animation,stroke,test 四种模式可选,该库仅在浏览器环境下可用 2.1+
cnchar-idiom 成语库 支持成语查询等功能 2.2+
cnchar-xhy 歇后语库 支持歇后语查询等功能 2.2+
cnchar-radical 偏旁部首库 支持查询汉字偏旁部首 2.2.5+
给个star!
最后更新于: 6/4/2020, 2:06:00 PM
- + diff --git a/docs/v2/guide/start.html b/docs/v2/guide/start.html index 1d52df0..a79c86c 100644 --- a/docs/v2/guide/start.html +++ b/docs/v2/guide/start.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1. npm安装

cnchar包含了一个基本库和六个功能库,用于实现不同的功能,您可以按需安装其中的功能库,但是 cnchar 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用)

安装主库

npm i cnchar

按需安装功能库:

npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy

浏览器环境中功能库可以直接使用:

import cnchar from 'cnchar';
+  

# 1. npm安装

cnchar包含了一个基本库和六个功能库,用于实现不同的功能,您可以按需安装其中的功能库,但是 cnchar 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用)

安装主库

npm i cnchar

按需安装功能库:

npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical

浏览器环境中功能库可以直接使用:

import cnchar from 'cnchar';
 // 以下功能库请按需使用
 import 'cnchar-poly';
 import 'cnchar-order';
 import 'cnchar-trad';
 import 'cnchar-draw';
 import 'cnchar-idiom';
-import 'cnchar-xhy';

非浏览器环境中功能库需要使用use方法加载,且不支持 cnchar-draw 库:

import cnchar from 'cnchar';
+import 'cnchar-xhy';
+import 'cnchar-radical';

非浏览器环境中功能库需要使用use方法加载,且不支持 cnchar-draw 库:

import cnchar from 'cnchar';
 // 以下功能库请按需使用
 import poly from 'cnchar-poly';
 import order from 'cnchar-order';
 import trad from 'cnchar-trad';
 import idiom from 'cnchar-idiom';
 import xhy from 'cnchar-xhy';
-cnchar.use(poly, order, trad, idiom, xhy);

commonjs 模块

var cnchar = require('cnchar');
+import radical from 'cnchar-radical';
+cnchar.use(poly, order, trad, idiom, xhy, radical);

commonjs 模块

var cnchar = require('cnchar');
 // 以下功能库请按需使用
 var poly = require('cnchar-poly');
 var order = require('cnchar-order');
 var trad = require('cnchar-trad');
 var idiom = require('cnchar-idiom');
 var xhy = require('cnchar-xhy');
-cnchar.use(poly, order, trad, idiom, xhy);

# 2. CDN引用

使用 script 标签使用:

<script src="https://cdn.jsdelivr.net/npm/cnchar/cnchar.min.js"></script>
+var radical = require('cnchar-radical');
+cnchar.use(poly, order, trad, idiom, xhy, radical);

# 2. CDN引用

使用 script 标签使用:

<script src="https://cdn.jsdelivr.net/npm/cnchar/cnchar.min.js"></script>
 <!--以下功能库请按需使用-->
 <script src="https://cdn.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/cnchar-order/cnchar.order.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/cnchar-trad/cnchar.trad.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/cnchar-draw/cnchar.draw.min.js"></script>
 <script src="https://cdn.jsdelivr.net/npm/cnchar-idiom/cnchar.idiom.min.js"> </script>
+<script src="https://cdn.jsdelivr.net/npm/cnchar-radical/cnchar.radical.min.js"> </script>
 <script src="https://cdn.jsdelivr.net/npm/cnchar-xhy/cnchar.xhy.min.js"> </script>

# 3. cnchar-all

如果您需要使用cnchar及其插件的所有功能,可以通过安装cnchar-all来使用完整功能,这个库引用了上面的七个库

npm i cnchar-all

commonjs 模块

import cnchar from 'cnchar-all';

cdn方式

<script src="https://cdn.jsdelivr.net/npm/cnchar-all/cnchar.all.min.js"></script>

# 4. 简单使用

cnchar 具有两个最核心的方法spellstroke,分别用于获取汉字的拼音和笔画数:

spell/stroke
运行结果
隐藏结果
Powered by JSBox

这只是一个最简单的使用,这两个方法具有很多参数可选,具体请参阅 cnchar 部分

最后更新于: 6/4/2020, 2:06:00 PM

- + diff --git a/docs/v2/guide/version.html b/docs/v2/guide/version.html index 1479f37..115f457 100644 --- a/docs/v2/guide/version.html +++ b/docs/v2/guide/version.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语

# 1.0(基础版本)

  1. 获取 汉字拼音 ,支持首字母、大小写、数组分割
  2. 获取 汉字笔画数

# 2.0 (升级版本)

  1. 备选 多音字 等功能
  2. 支持 多音词
  3. 支持 拼音音调
  4. 获取汉字 笔画顺序 、笔画详细名称、通过笔画顺序推出原汉字等
  5. 支持 简体字繁体字火星文 互转
  6. 支持 繁体字 拼音、笔画数,实现和简体字一样的功能
  7. 体积小,最小压缩版本仅 42 kb
  8. 多端可用,可用于 原生浏览器环境、webpack环境、nodejs环境...,几乎支持所有js能运行的环境
  9. 丰富的配置,按需取用

# 2.0.2

  1. 添加多音字默认读音字典
  2. 增加根据笔画数反推导出汉字的功能 orderToWord
  3. 修改一些多音字的默认读音

# 2.0.3

  1. 去除 origin 参数,多音词模式下使用 poly参数会启用备选多音字功能而禁用多音词功能
  2. orderToWord 加入繁体字支持,参数修改为 ['all','simple']
  3. 增加参数校验中提示可选值
  4. 对词库进行一些修改

# 2.0.4

  1. 主要扩充了繁体字库
  2. 修改了 繁体字、简体字、火星体之间的转换方法,只保留了六个转换方法

# 2.0.5 - 2.0.6

  1. 加入了 typescript 声明文件 index.d.ts
  2. script 方式引用增加了 latest.min.js 版本

# 2.0.7

  1. 加入 eslint 和 commitlint
  2. 使用 gulp-babel 转换源代码到 npm 包,使得即便禁用了对node_module的babel转换,也可以正常使用cnchr
  3. 修复了多音字广和厂的默认读音

# 2.0.8

  1. 扩充了217个词频高于100的汉字
  2. 修改orderToWord.orders 笔画名称的显示,如果某个笔画有两个现在会保留两个名称
  3. orderToWord 笔画数组支持使用空格分隔的笔画字符串
  4. orderToWord 默认返回字符串 如需返回数组请加上 array 参数
  5. orderToWord 修改all参数为start 增加 contain、match、matchorder参数,优先级 match>matchorder>contain>start>默认
  6. 加入 cnchar.spellToWord 方法
  7. 加入 cnchar.strokeToWord 方法
  8. 加入 cnchar.spellInfo 方法,spellInfo.tones spellInfo.initials属性
  9. 仓库加入测试目录

# 2.0.9

  1. 修复 多音词"致远任重" 中的 重 字拼音错误
  2. 增加 齉 字 [nàng 36]
  3. 无字默认读音修正
  4. 修改 13 个多音字的默认读音
  5. 增加 15 个多音词

# 2.1.0

  1. 增加cnchar-draw插件,支持可视化绘制汉字笔画,多种模式可选
  2. 将cdn移至npm包中,改变cdn引用方式,删除dist目录
  3. 使用vuepress构建文档,工程化重构文档
  4. 使用gulp-markdown-toc

# 2.1.1

  1. 修复cnchar-all依赖的bug

# 2.1.2

  1. 增加draw背景色设置
  2. 修正几个多音词
  3. 统一 trad 和 simple 参数
  4. 移除了一字和三字的繁体(应该是大写不是繁体)

# 2.1.3

  1. draw库增加clear参数,表示绘制前是否清空容器
  2. draw库将backgroundColor参数默认值改为#fff
  3. draw库将el参数改为支持css选择器或dom

# 2.1.4

  1. 修复cnchar-all及cnchar-draw库在非浏览器环境会报错的bug
  2. 修复 draw库和main库在ts环境中引用的异常

# 2.2.0 [2020/6/4]

  1. 增加cnchar-idiom 成语库
  2. 增加cnchar-xhy 歇后语库
  3. 增加transformTone,isCnchar,compareSpell,compareStroke,sortSpell,sortStroke工具方法,方便开发者更便捷的操作拼音和汉字
  4. 对ts声明文件进行修改,对ts的支持更加友好
  5. 鸟字增加默认读音
  6. 彷徨读音修正
  7. cnchar-draw 增加 Promise-polyfill
  8. 文档增加Object.assign-polyfill
最后更新于: 6/4/2020, 2:12:11 PM

# 1.0(基础版本)

  1. 获取 汉字拼音 ,支持首字母、大小写、数组分割
  2. 获取 汉字笔画数

# 2.0 (升级版本)

  1. 备选 多音字 等功能
  2. 支持 多音词
  3. 支持 拼音音调
  4. 获取汉字 笔画顺序 、笔画详细名称、通过笔画顺序推出原汉字等
  5. 支持 简体字繁体字火星文 互转
  6. 支持 繁体字 拼音、笔画数,实现和简体字一样的功能
  7. 体积小,最小压缩版本仅 42 kb
  8. 多端可用,可用于 原生浏览器环境、webpack环境、nodejs环境...,几乎支持所有js能运行的环境
  9. 丰富的配置,按需取用

# 2.0.2

  1. 添加多音字默认读音字典
  2. 增加根据笔画数反推导出汉字的功能 orderToWord
  3. 修改一些多音字的默认读音

# 2.0.3

  1. 去除 origin 参数,多音词模式下使用 poly参数会启用备选多音字功能而禁用多音词功能
  2. orderToWord 加入繁体字支持,参数修改为 ['all','simple']
  3. 增加参数校验中提示可选值
  4. 对词库进行一些修改

# 2.0.4

  1. 主要扩充了繁体字库
  2. 修改了 繁体字、简体字、火星体之间的转换方法,只保留了六个转换方法

# 2.0.5 - 2.0.6

  1. 加入了 typescript 声明文件 index.d.ts
  2. script 方式引用增加了 latest.min.js 版本

# 2.0.7

  1. 加入 eslint 和 commitlint
  2. 使用 gulp-babel 转换源代码到 npm 包,使得即便禁用了对node_module的babel转换,也可以正常使用cnchr
  3. 修复了多音字广和厂的默认读音

# 2.0.8

  1. 扩充了217个词频高于100的汉字
  2. 修改orderToWord.orders 笔画名称的显示,如果某个笔画有两个现在会保留两个名称
  3. orderToWord 笔画数组支持使用空格分隔的笔画字符串
  4. orderToWord 默认返回字符串 如需返回数组请加上 array 参数
  5. orderToWord 修改all参数为start 增加 contain、match、matchorder参数,优先级 match>matchorder>contain>start>默认
  6. 加入 cnchar.spellToWord 方法
  7. 加入 cnchar.strokeToWord 方法
  8. 加入 cnchar.spellInfo 方法,spellInfo.tones spellInfo.initials属性
  9. 仓库加入测试目录

# 2.0.9

  1. 修复 多音词"致远任重" 中的 重 字拼音错误
  2. 增加 齉 字 [nàng 36]
  3. 无字默认读音修正
  4. 修改 13 个多音字的默认读音
  5. 增加 15 个多音词

# 2.1.0

  1. 增加cnchar-draw插件,支持可视化绘制汉字笔画,多种模式可选
  2. 将cdn移至npm包中,改变cdn引用方式,删除dist目录
  3. 使用vuepress构建文档,工程化重构文档
  4. 使用gulp-markdown-toc

# 2.1.1

  1. 修复cnchar-all依赖的bug

# 2.1.2

  1. 增加draw背景色设置
  2. 修正几个多音词
  3. 统一 trad 和 simple 参数
  4. 移除了一字和三字的繁体(应该是大写不是繁体)

# 2.1.3

  1. draw库增加clear参数,表示绘制前是否清空容器
  2. draw库将backgroundColor参数默认值改为#fff
  3. draw库将el参数改为支持css选择器或dom

# 2.1.4

  1. 修复cnchar-all及cnchar-draw库在非浏览器环境会报错的bug
  2. 修复 draw库和main库在ts环境中引用的异常

# 2.2.0

  1. 增加cnchar-idiom 成语库
  2. 增加cnchar-xhy 歇后语库
  3. 增加transformTone,isCnchar,compareSpell,compareStroke,sortSpell,sortStroke工具方法,方便开发者更便捷的操作拼音和汉字
  4. 对ts声明文件进行修改,对ts的支持更加友好
  5. 鸟字增加默认读音
  6. 彷徨读音修正
  7. cnchar-draw 增加 Promise-polyfill
  8. 文档增加Object.assign-polyfill

# 2.2.1

  1. 修复ts声明文件的bug
  2. ts声明文件增加字符串扩展方法
  3. 修复构建npm的bug

# 2.2.2

  1. 增加几个多音字的默认读音

# 2.2.3

  1. 修复draw库不同绘制实例样式会干扰的bug

# 2.2.4

  1. 增加 红 字的默认读音

# 2.2.5

  1. 增加cnchar-radical, 偏旁部首插件库
最后更新于: 6/4/2020, 2:12:11 PM
- + diff --git a/docs/v2/index.html b/docs/v2/index.html index 4a33c2b..b475f23 100644 --- a/docs/v2/index.html +++ b/docs/v2/index.html @@ -8,7 +8,7 @@ - + @@ -32,6 +32,8 @@ cnchar-idiom: 成语
cnchar
功能全面、多端支持的汉字拼音笔画js库
功能全面
拼音、笔画数
多音字词
繁体字、火星文
汉字笔顺
多种模式绘制汉字
汉字推算
...
多端支持
浏览器
nodejs
小程序/小游戏
ReactNative/Weex/Uniapp/Electron
webpack
typescript支持
...
按需取用
功能分包
体积小巧
简单易用
npm
cdn
MIT Licensed | Copyright © 2020 present theajack
最后更新于: 4/14/2020, 1:02:43 AM
- + + ``` Or use the following cdn, which contains the above seven libraries @@ -167,6 +170,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // Please use the plug-in as needed console.log('汉字'.spell()); // Called by prototype @@ -187,9 +191,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // Please use the plug-in as needed // cnchar-draw cannot be used in a non-browser environment -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // Called by prototype console.log(cnchar.spell('汉字')); // cnchar api call @@ -209,6 +214,7 @@ The native browser environment requires the use of script tags to import js file + ``` -##### 6.8.1 cnchar basic library function +##### 6.9.1 cnchar basic library function ```js // spell function @@ -952,7 +1010,7 @@ Remarks: 4. Stroke method Non-Chinese characters will count as 0 5. Stroke method order mode Non-Chinese characters will return undefined -##### 6.8.2 cnchar-poly library function +##### 6.9.2 cnchar-poly library function This library is used to accurately identify polyphonic words and also supports other parameter functions in 6.3.1 @@ -962,7 +1020,7 @@ This library is used to accurately identify polyphonic words and also supports o '长大了'.spell('poly'); // returns'(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order library function +##### 6.9.3 cnchar-order library function This library is used to query the stroke order and stroke name of Chinese characters. The return value is an array. @@ -1018,11 +1076,11 @@ cnchar.orderToWord(['横','撇','捺'],'contain'); // Back to"丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..."// Omit the following ``` -##### 6.8.4 cnchar-trad library function +##### 6.9.4 cnchar-trad library function This library is used to support the conversion of traditional Chinese characters to Mars and provide traditional Chinese characters for basic functions such as pinyin -###### 6.8.4.1 convert font conversion +###### 6.9.4.1 convert font conversion ```js '一个人'.convertSimpleToTrad(); // returns"壹個人"is equivalent to cnchar.convert.simpleToTrad @@ -1044,7 +1102,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell and stroke methods +###### 6.9.4.2 spell and stroke methods The library adds pinyin stroke function extension for traditional characters, and other basic usages are consistent with the basic library: @@ -1060,7 +1118,7 @@ The library adds pinyin stroke function extension for traditional characters, an '長大'.stroke('order','shape','simple'); // returns [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom library function +##### 6.9.5 cnchar-idiom library function This library extends the idiom function for cnchar @@ -1071,7 +1129,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy library function +##### 6.9.6 cnchar-xhy library function This library extends the function of Xiehouyu for cnchar @@ -1082,18 +1140,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 Tools and methods +##### 6.9.7 cnchar-radical library function + +The library extends the radical function for cnchar + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 Tools and methods cnchar provides some Chinese character tool methods to facilitate developers to operate pinyin and Chinese characters more conveniently and efficiently -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // Returns {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1103,7 +1172,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1112,7 +1181,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1124,7 +1193,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1134,7 +1203,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1145,7 +1214,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/helper/README.md b/helper/README.md index fb1084c..063e41e 100644 --- a/helper/README.md +++ b/helper/README.md @@ -95,11 +95,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -114,6 +115,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -128,12 +130,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -148,6 +150,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -171,6 +174,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -191,9 +195,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -213,6 +218,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -957,7 +1015,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -967,7 +1025,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1023,11 +1081,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1049,7 +1107,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1065,7 +1123,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1076,7 +1134,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1087,18 +1145,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1108,7 +1177,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1117,7 +1186,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1129,7 +1198,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1139,7 +1208,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1150,7 +1219,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/helper/build-npm.js b/helper/build-npm.js index de4230b..6f5a8d0 100644 --- a/helper/build-npm.js +++ b/helper/build-npm.js @@ -11,6 +11,7 @@ let files = [ '../npm/draw/package.json', '../npm/idiom/package.json', '../npm/xhy/package.json', + '../npm/radical/package.json', '../npm/cnchar/package.json', '../npm/all/package.json', '../npm/hanzi-util/package.json', @@ -65,6 +66,7 @@ function copyToNPM () { .pipe(gulp.dest('npm/trad')) .pipe(gulp.dest('npm/draw')) .pipe(gulp.dest('npm/idiom')) + .pipe(gulp.dest('npm/radical')) .pipe(gulp.dest('npm/xhy')); gulp.src(['src/main/*.json', 'src/main/*.d.ts', 'LICENSE']) @@ -85,6 +87,9 @@ function copyToNPM () { gulp.src(['src/plugin/idiom/*.json', 'src/plugin/idiom/*.d.ts', 'LICENSE']) .pipe(gulp.dest('npm/idiom')); + gulp.src(['src/plugin/radical/*.json', 'src/plugin/radical/*.d.ts', 'LICENSE']) + .pipe(gulp.dest('npm/radical')); + gulp.src(['src/plugin/xhy/*.json', 'src/plugin/xhy/*.d.ts', 'LICENSE']) .pipe(gulp.dest('npm/xhy')); @@ -151,6 +156,10 @@ function transEs6ByBabel () { gulp.src('src/plugin/xhy/*.js') .pipe(babel({presets: ['@babel/env']})) .pipe(gulp.dest('npm/xhy')); + + gulp.src('src/plugin/radical/*.js') + .pipe(babel({presets: ['@babel/env']})) + .pipe(gulp.dest('npm/radical')); gulp.src('src/plugin/all/*.js') .pipe(babel({presets: ['@babel/env']})) diff --git a/helper/version.md b/helper/version.md index f60f8f3..ad5a8eb 100644 --- a/helper/version.md +++ b/helper/version.md @@ -102,4 +102,7 @@ 1. 修复draw库不同绘制实例样式会干扰的bug ## 2.2.4 -1. 增加 红 字的默认读音 \ No newline at end of file +1. 增加 红 字的默认读音 + +## 2.2.5 +1. 增加cnchar-radical, 偏旁部首插件库 \ No newline at end of file diff --git a/npm/all/cnchar.all.min.js b/npm/all/cnchar.all.min.js index 7bec019..1b82bfe 100644 --- a/npm/all/cnchar.all.min.js +++ b/npm/all/cnchar.all.min.js @@ -1,2 +1,2 @@ !function(j){var f={};function s(k){if(f[k])return f[k].exports;var n=f[k]={i:k,l:!1,exports:{}};return j[k].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.m=j,s.c=f,s.d=function(j,f,k){s.o(j,f)||Object.defineProperty(j,f,{enumerable:!0,get:k})},s.r=function(j){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(j,"__esModule",{value:!0})},s.t=function(j,f){if(1&f&&(j=s(j)),8&f)return j;if(4&f&&"object"==typeof j&&j&&j.__esModule)return j;var k=Object.create(null);if(s.r(k),Object.defineProperty(k,"default",{enumerable:!0,value:j}),2&f&&"string"!=typeof j)for(var n in j)s.d(k,n,function(f){return j[f]}.bind(null,n));return k},s.n=function(j){var f=j&&j.__esModule?function(){return j.default}:function(){return j};return s.d(f,"a",f),f},s.o=function(j,f){return Object.prototype.hasOwnProperty.call(j,f)},s.p="",s(s.s=7)}([function(j,f){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(j){"object"==typeof window&&(s=window)}j.exports=s},function(j,f,s){var k=s(2),n=s(11),c={simple:"simple",trad:"trad",poly:"poly",alltone:"alltone",array:"array"},i={};function e(j){j=j.toLowerCase();var f=i.removeTone(j,!1);if(-1===f.index){if(!k[f.spell])throw new Error("【spellInfo】错误的拼音: "+j);f.index=parseInt(k[f.spell][0])+1}for(var s="",c=f.spell,e=0;e4;u&&(g-=5),-1!==t.indexOf(o)||!r.alltone&&g!==e.tone||r.poly&&!u||(t+=o)}if(r.trad&&i.convert){for(var d="",a=0;a=s.length){if(!j.at)return j.et=!1,this.st=this.st.filter((function(f){return f!==j})),void j.I({canceled:!1});j.ut=0}j.ht[j.ut].run(this).then((function(){j.et&&(j.ut++,f.ft(j))}))}},i.prototype.vt=function(){return this.st.map((function(j){return j.ht[j.ut]}))},i.prototype.pauseAll=function(){this.vt().forEach((function(j){return j.pause()}))},i.prototype.resumeAll=function(){this.vt().forEach((function(j){return j.resume()}))},i.prototype.cancelMutations=function(j){var f=this;this.st.forEach((function(s){s.ct.forEach((function(k){j.forEach((function(j){(0<=k.indexOf(j)||0<=j.indexOf(k))&&f.lt(s)}))}))}))},i.prototype.cancelAll=function(){this.cancelMutations([""])},i.prototype.lt=function(j){j.et=!1;for(var f=j.ut;f=this.B.showHintAfterMisses&&this.F.run(r.highlightStroke(j,this.B.highlightColor,this.B.strokeHighlightSpeed))),this.kt=null}else this.kt=null},o.prototype.cancel=function(){this.et=!1,this.kt&&this.F.run(r.removeUserStroke(this.kt.id,this.B.drawingFadeDuration))},o.prototype.bt=function(j){i(this.B.onCorrectStroke,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt-1,drawnPath:l(this.kt)});var f=h.showStroke("main",this.pt,this.B.strokeFadeDuration);this.pt+=1,this.yt=0,this.pt===this.V.strokes.length&&(this.et=!1,i(this.B.onComplete,{character:this.V.symbol,totalMistakes:this.wt}),this.B.highlightOnComplete&&(f=f.concat(r.highlightCompleteChar(this.V,this.B.highlightCompleteColor,2*this.B.strokeHighlightDuration)))),this.F.run(f)},o.prototype.Ct=function(){this.yt+=1,this.wt+=1,i(this.B.onMistake,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt,drawnPath:l(this.kt)})},o.prototype.mt=function(){return this.V.strokes[this.pt]},j.exports=o},function(j,f,s){"use strict";var k=s(0),n=k.average,c=k.assign,i=s(2),e=i.cosineSimilarity,r=i.equals,t=i.frechetDist,h=i.distance,l=i.subtract,o=i.normalizeCurve,g=i.rotate,u=i.length,d=function(j,f){var s,k,c,i=(k=[],c=(s=j)[0],s.slice(1).forEach((function(j){k.push(l(j,c)),c=j})),k),r=f.getVectors(),t=i.map((function(j){var f=r.map((function(f){return e(f,j)}));return Math.max.apply(Math,f)}));return 0=19968&&f<=40869}function l(j,f){return-1!==j.indexOf(f)}function o(j,f){t._.poly&&g(j,y),l(f,r.first)&&g(j,u),l(f,r.up)?g(j,d):l(f,r.low)||g(j,a)}function g(j,f){j.forEach((function(s,k){"string"!=typeof s?s.forEach((function(j,k){s[k]=f(j)})):":"!==s[0]&&(j[k]=f(s))}))}function u(j){return j[0]}function d(j){return j.toUpperCase()}function a(j){return d(j[0])+j.substr(1)}function y(j){return j.toLowerCase()}function p(j,f,s,k,n,c){var i={res:j,poly:!1},e=parseInt(f[s+1]);return i.isPolyWord=e>=5,k||n?(i.isPolyWord&&(e-=5,k&&(i.poly=!0)),n&&(i.res=m(j,c,e)),i):i}function b(j,f){if(f)return{spell:j};for(var s=0;s=0;i--){var e=f[i];c[j][e]||(n.push(e),f.splice(i,1))}var r=[],h=[],o=function j(s,n){"object"!==k(s)?(n=n||r,l(f,s)&&n.push(s)):s.forEach((function(f){j(f,n)}))};-1===t.plugins.indexOf("trad")&&(l(f,"simple")&&r.push("simple"),l(f,"trad")&&r.push("trad")),"spell"===j?l(f,"up")&&l(f,"low")&&r.push("low"):"stroke"===j?l(f,"order")?(o("array",h),l(f,"letter")?(o(["detail","shape","name","count"]),o("letter",h)):l(f,"detail")?o(["shape","name","count"]):l(f,"shape")?o(["name","count"]):l(f,"name")&&o(["count"])):(o(["detail","shape","name","letter"]),o("count",h)):"orderToWord"===j?l(f,"match")?o(["match-order","contain","start"]):l(f,"match-order")?o(["contain","start"]):l(f,"contain")&&o(["start"]):"strokeToWord"===j||"spellToWord"===j||"idiom"===j&&(l(f,"spell")?o(["stroke","char"]):l(f,"stroke")?o(["tone","char"]):o(["tone"])),v(n,"无效",j),v(r,"被忽略",j),v(h,"冗余",j)}}function v(j,f,s){j.length>0&&e("以下参数".concat(f,":").concat(JSON.stringify(j),"; 可选值:[").concat(Object.keys(t.type[s]),"]"))}j.exports={_throw:function(j){throw new Error("CnChar Error:"+j)},_wran:e,arg:r,isCnChar:h,has:l,spell:function(j,f){var s=f[0].split("");x("spell",f=f.splice(1));var k=l(f,r.poly),n=l(f,r.tone),c=[];for(var e in j)for(var t=j[e],g=t[0],u=0;u2&&void 0!==arguments[2]?arguments[2]:"low";-1!==j.indexOf("v")&&(j=j.replace("v","ü"));var k=j[j.length-1],c=-1,i=!1;if(parseInt(k).toString()===k){j=j.substr(0,j.length-1);var e=n(j);c=e.index,k=parseInt(k),i=!0,f&&(j=m(j,c-1,k))}else{var r=n(j);c=r.index,k=r.tone,f||0===k||(j=r.spell)}return"low"===s?j=j.toLowerCase():"up"===s&&(j=j.toUpperCase()),{spell:j,tone:k,index:c,isTrans:i}}}},function(j){j.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(j){j.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(j,f,s){var k=s(2),n=s(3);j.exports={spell:k,stroke:n}},function(j,f,s){var k=s(3),n={simple:"simple",trad:"trad",array:"array"},c={};function i(){for(var j=arguments.length,f=new Array(j),s=0;s2&&void 0!==arguments[2]&&arguments[2];j=o(j,s),f=o(f,s);for(var k=0;ki)return t;if(nf?t:j1?s-1:0),n=1;n1?s-1:0),n=1;n1&&void 0!==arguments[1]&&arguments[1];if(!f)return j.charCodeAt(0);var s=c(j);return-1===s?j.charCodeAt(0):s}}},function(j,f,s){function k(j){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(j){return typeof j}:function(j){return j&&"function"==typeof Symbol&&j.constructor===Symbol&&j!==Symbol.prototype?"symbol":typeof j})(j)}var n=s(4),c=s(5),i=s(18),e={},r={letter:"letter",shape:"shape",count:"count",name:"name",detail:"detail",array:"array",order:"order"};function t(j){if(-1===j.plugins.indexOf("order")){j.plugins.push("order");var f=j._origin.stroke;e=j._;var s=function(){for(var j=arguments.length,s=new Array(j),k=0;k0)return console.error("orderToWord: 参数笔画名数组有误:"+t.join(",")),[];var l=[],o={start:i.has(f,c.start),match:i.has(f,c.match),matchorder:i.has(f,c.matchorder),contain:i.has(f,c.contain),simple:i.has(f,c.simple),trad:i.has(f,c.trad)};return o.simple||o.trad||(o.simple=o.trad=!0),o.simple&&r(l,h,o,k),o.trad&&i.dict.getTradOrders&&r(l,h,o,i.dict.getTradOrders()),i.has(f,c.array)?l:l.join("")}function r(j,f,s,k){if(s.match)for(var n in k){for(var c=!1,i=0;if.length)break;k[u]===f&&j.push(u)}return j}function t(j,f,s,k){var n={shape:f,letter:s};k&&(n.sameLetterTo=k),e.orders[j]=n}!function(){for(var j in e.orders={},e._base=r,n){var f=n[j],s=f.name,k=f.shape;if(-1!==s.indexOf("|")){var c=s.split("|"),i=k.split("|");t(c[0],i[0],j,c[1]),t(c[1],i[1],j,c[0])}else t(s,k,j)}}(),j.exports=function(j){j.orderToWord=e,j.type.orderToWord=c,i=j._}},function(j,f,s){function k(j){return function(j){if(Array.isArray(j))return n(j)}(j)||function(j){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(j))return Array.from(j)}(j)||function(j,f){if(!j)return;if("string"==typeof j)return n(j,f);var s=Object.prototype.toString.call(j).slice(8,-1);"Object"===s&&j.constructor&&(s=j.constructor.name);if("Map"===s||"Set"===s)return Array.from(s);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(j,f)}(j)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(j,f){(null==f||f>j.length)&&(f=j.length);for(var s=0,k=new Array(f);sj.length)&&(f=j.length);for(var s=0,k=new Array(f);sf;f++)i(j,j._deferreds[f]);j._deferreds=null}function l(j,f){var s=!1;try{j((function(j){s||(s=!0,r(f,j))}),(function(j){s||(s=!0,t(f,j))}))}catch(j){if(s)return;s=!0,t(f,j)}}var o=setTimeout;c.prototype.catch=function(j){return this.then(null,j)},c.prototype.then=function(j,f){var k=new this.constructor(s);return i(this,new function(j,f,s){this.onFulfilled="function"==typeof j?j:null,this.onRejected="function"==typeof f?f:null,this.promise=s}(j,f,k)),k},c.prototype.finally=j,c.all=function(j){return new c((function(s,k){function n(j,f){try{if(f&&("object"==e(f)||"function"==typeof f)){var r=f.then;if("function"==typeof r)return void r.call(f,(function(f){n(j,f)}),k)}c[j]=f,0==--i&&s(c)}catch(j){k(j)}}if(!f(j))return k(new TypeError("Promise.all accepts an array"));var c=Array.prototype.slice.call(j);if(0===c.length)return s([]);for(var i=c.length,r=0;c.length>r;r++)n(r,c[r])}))},c.resolve=function(j){return j&&"object"==e(j)&&j.constructor===c?j:new c((function(f){f(j)}))},c.reject=function(j){return new c((function(f,s){s(j)}))},c.race=function(j){return new c((function(s,k){if(!f(j))return k(new TypeError("Promise.race accepts an array"));for(var n=0,i=j.length;i>n;n++)c.resolve(j[n]).then(s,k)}))},c._immediateFn="function"==typeof k&&function(j){k(j)}||function(j){o(j,0)},c._unhandledRejectionFn=function(j){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",j)};var g=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n)return n;throw Error("unable to locate global object")}();"Promise"in g?g.Promise.prototype.finally||(g.Promise.prototype.finally=j):g.Promise=c}))}).call(this,s(29).setImmediate,s(0))},function(j,f,s){(function(j){var k=void 0!==j&&j||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function c(j,f){this._id=j,this._clearFn=f}f.setTimeout=function(){return new c(n.call(setTimeout,k,arguments),clearTimeout)},f.setInterval=function(){return new c(n.call(setInterval,k,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(j){j&&j.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(k,this._id)},f.enroll=function(j,f){clearTimeout(j._idleTimeoutId),j._idleTimeout=f},f.unenroll=function(j){clearTimeout(j._idleTimeoutId),j._idleTimeout=-1},f._unrefActive=f.active=function(j){clearTimeout(j._idleTimeoutId);var f=j._idleTimeout;f>=0&&(j._idleTimeoutId=setTimeout((function(){j._onTimeout&&j._onTimeout()}),f))},s(30),f.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==j&&j.setImmediate||this&&this.setImmediate,f.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==j&&j.clearImmediate||this&&this.clearImmediate}).call(this,s(0))},function(j,f,s){(function(j,f){!function(j,s){"use strict";if(!j.setImmediate){var k,n,c,i,e,r=1,t={},h=!1,l=j.document,o=Object.getPrototypeOf&&Object.getPrototypeOf(j);o=o&&o.setTimeout?o:j,"[object process]"==={}.toString.call(j.process)?k=function(j){f.nextTick((function(){u(j)}))}:!function(){if(j.postMessage&&!j.importScripts){var f=!0,s=j.onmessage;return j.onmessage=function(){f=!1},j.postMessage("","*"),j.onmessage=s,f}}()?j.MessageChannel?((c=new MessageChannel).port1.onmessage=function(j){u(j.data)},k=function(j){c.port2.postMessage(j)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,k=function(j){var f=l.createElement("script");f.onreadystatechange=function(){u(j),f.onreadystatechange=null,n.removeChild(f),f=null},n.appendChild(f)}):k=function(j){setTimeout(u,0,j)}:(i="setImmediate$"+Math.random()+"$",e=function(f){f.source===j&&"string"==typeof f.data&&0===f.data.indexOf(i)&&u(+f.data.slice(i.length))},j.addEventListener?j.addEventListener("message",e,!1):j.attachEvent("onmessage",e),k=function(f){j.postMessage(i+f,"*")}),o.setImmediate=function(j){"function"!=typeof j&&(j=new Function(""+j));for(var f=new Array(arguments.length-1),s=0;s1)for(var s=1;s=this.writers.length?f(!0):this.writers[j].animateCharacter({onComplete:function(){f(!1)}})}},{key:"_animateStep",value:function(j,f){var s=this;this._animateSingle(j,(function(k){k?f():setTimeout((function(){s._animateStep(j+1,f)}),s.option.delayBetweenStrokes)}))}}])&&k(f.prototype,s),n&&k(f,n),j}();function a(){var j=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"==typeof window)return console.error("Draw 方法仅支持在浏览器环境下使用"),null;if(!(j=h(j)))throw new Error("Draw 方法text必须含有中文");return f.text=j,new d(f)}a.TYPE=e,a.TEST_STATUS=t,j.exports=a},function(j,f){j.exports=function(j){return j.webpackPolyfill||(j.deprecate=function(){},j.paths=[],j.children||(j.children=[]),Object.defineProperty(j,"loaded",{enumerable:!0,get:function(){return j.l}}),Object.defineProperty(j,"id",{enumerable:!0,get:function(){return j.i}}),j.webpackPolyfill=1),j}},function(j,f){var s={NORMAL:"normal",ANIMATION:"animation",STROKE:"stroke",TEST:"test"},k={showOutline:!0,showCharacter:!0,currentColor:"#b44",clear:!0,length:60,padding:5,outlineColor:"#ddd",backgroundColor:"#fff",strokeColor:"#555",radicalColor:null,strokeFadeDuration:400,lineStraight:!0,lineCross:!0,lineWidth:1,lineColor:"#ddd",lineDash:!0,border:!0,borderWidth:1,borderColor:"#ccc",borderDash:!1,strokeAnimationSpeed:1,delayBetweenStrokes:1e3,delayBetweenLoops:200,autoAnimate:!0,animateComplete:function(){},stepByStep:!0,loopAnimate:!1,strokeHighlightSpeed:20,highlightColor:"#aaf",drawingColor:"#333",drawingWidth:4,showHintAfterMisses:3,highlightOnComplete:!0,highlightCompleteColor:null,onTestStatus:null};function n(j){return void 0===j}j.exports={TYPE:s,Option:k,merge:function(j,f){var c={};for(var i in f){var e=f[i];for(var r in e)n(e[r])||(c[r]=e[r])}return function(j,f){(f=f||Object.keys(k)).forEach((function(f){n(j[f])&&(j[f]=k[f])}))}(c),c.width=c.length,c.height=c.length,function(j,f,k){j===s.ANIMATION?f.animation&&!n(f.animation.showCharacter)||(k.showCharacter=!1):j===s.STROKE&&(k.showCharacter=!1)}(j,f,c),c},TEST_STATUS:{MISTAKE:"mistake",CORRECT:"correct",COMPLETE:"complete"}}},function(j,f){function s(j){var f=j.charCodeAt(0);return f>=19968&&f<=40869}j.exports={isCnChar:s,pickCnChar:function(j){for(var f="",k=0;k1&&(o+='stroke-width="'.concat(n,'"')),s){var g=f/2;l+='\n ')}k&&(l+='\n '));var u="";return e&&(u="".concat(r,"px ").concat(h?"dashed":"solid"," ").concat(t)),{lineHTML:l,border:u}}}},function(j,f,s){var k=s(6);function n(j){var f=j.option,s=j.target,n=j.strokes,i=j.radStrokes,e=j.cloneSvg,r=j.current,t=j.width,h=i.length>0&&f.radicalColor?f.radicalColor:null,l=e(f);s.appendChild(l);var o=document.createElementNS("http://www.w3.org/2000/svg","g"),g=k.getScalingTransform(t,t,f.padding);o.setAttributeNS(null,"transform",g.transform),l.appendChild(o);for(var u=0;u<=r;u++){var d=f.strokeColor;u===r&&f.currentColor?d=f.currentColor:h&&-1!==i.indexOf(u)&&(d=h),c(n[u],o,d)}if(f.showOutline&&r+1<=n.length)for(var a=r+1;a=s.length){if(!j.at)return j.et=!1,this.st=this.st.filter((function(f){return f!==j})),void j.I({canceled:!1});j.ut=0}j.ht[j.ut].run(this).then((function(){j.et&&(j.ut++,f.ft(j))}))}},i.prototype.vt=function(){return this.st.map((function(j){return j.ht[j.ut]}))},i.prototype.pauseAll=function(){this.vt().forEach((function(j){return j.pause()}))},i.prototype.resumeAll=function(){this.vt().forEach((function(j){return j.resume()}))},i.prototype.cancelMutations=function(j){var f=this;this.st.forEach((function(s){s.ct.forEach((function(k){j.forEach((function(j){(0<=k.indexOf(j)||0<=j.indexOf(k))&&f.lt(s)}))}))}))},i.prototype.cancelAll=function(){this.cancelMutations([""])},i.prototype.lt=function(j){j.et=!1;for(var f=j.ut;f=this.B.showHintAfterMisses&&this.F.run(r.highlightStroke(j,this.B.highlightColor,this.B.strokeHighlightSpeed))),this.kt=null}else this.kt=null},o.prototype.cancel=function(){this.et=!1,this.kt&&this.F.run(r.removeUserStroke(this.kt.id,this.B.drawingFadeDuration))},o.prototype.bt=function(j){i(this.B.onCorrectStroke,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt-1,drawnPath:l(this.kt)});var f=h.showStroke("main",this.pt,this.B.strokeFadeDuration);this.pt+=1,this.yt=0,this.pt===this.V.strokes.length&&(this.et=!1,i(this.B.onComplete,{character:this.V.symbol,totalMistakes:this.wt}),this.B.highlightOnComplete&&(f=f.concat(r.highlightCompleteChar(this.V,this.B.highlightCompleteColor,2*this.B.strokeHighlightDuration)))),this.F.run(f)},o.prototype.Ct=function(){this.yt+=1,this.wt+=1,i(this.B.onMistake,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt,drawnPath:l(this.kt)})},o.prototype.mt=function(){return this.V.strokes[this.pt]},j.exports=o},function(j,f,s){"use strict";var k=s(0),n=k.average,c=k.assign,i=s(2),e=i.cosineSimilarity,r=i.equals,t=i.frechetDist,h=i.distance,l=i.subtract,o=i.normalizeCurve,g=i.rotate,u=i.length,d=function(j,f){var s,k,c,i=(k=[],c=(s=j)[0],s.slice(1).forEach((function(j){k.push(l(j,c)),c=j})),k),r=f.getVectors(),t=i.map((function(j){var f=r.map((function(f){return e(f,j)}));return Math.max.apply(Math,f)}));return 0=19968&&f<=40869}function l(j,f){return-1!==j.indexOf(f)}function o(j,f){t._.poly&&g(j,y),l(f,r.first)&&g(j,u),l(f,r.up)?g(j,d):l(f,r.low)||g(j,a)}function g(j,f){j.forEach((function(s,k){"string"!=typeof s?s.forEach((function(j,k){s[k]=f(j)})):":"!==s[0]&&(j[k]=f(s))}))}function u(j){return j[0]}function d(j){return j.toUpperCase()}function a(j){return d(j[0])+j.substr(1)}function y(j){return j.toLowerCase()}function p(j,f,s,k,n,c){var i={res:j,poly:!1},e=parseInt(f[s+1]);return i.isPolyWord=e>=5,k||n?(i.isPolyWord&&(e-=5,k&&(i.poly=!0)),n&&(i.res=m(j,c,e)),i):i}function b(j,f){if(f)return{spell:j};for(var s=0;s=0;i--){var e=f[i];c[j][e]||(n.push(e),f.splice(i,1))}var r=[],h=[],o=function j(s,n){"object"!==k(s)?(n=n||r,l(f,s)&&n.push(s)):s.forEach((function(f){j(f,n)}))};-1===t.plugins.indexOf("trad")&&(l(f,"simple")&&r.push("simple"),l(f,"trad")&&r.push("trad")),"spell"===j?l(f,"up")&&l(f,"low")&&r.push("low"):"stroke"===j?l(f,"order")?(o("array",h),l(f,"letter")?(o(["detail","shape","name","count"]),o("letter",h)):l(f,"detail")?o(["shape","name","count"]):l(f,"shape")?o(["name","count"]):l(f,"name")&&o(["count"])):(o(["detail","shape","name","letter"]),o("count",h)):"orderToWord"===j?l(f,"match")?o(["match-order","contain","start"]):l(f,"match-order")?o(["contain","start"]):l(f,"contain")&&o(["start"]):"strokeToWord"===j||"spellToWord"===j||"idiom"===j&&(l(f,"spell")?o(["stroke","char"]):l(f,"stroke")?o(["tone","char"]):o(["tone"])),v(n,"无效",j),v(r,"被忽略",j),v(h,"冗余",j)}}function v(j,f,s){j.length>0&&e("以下参数".concat(f,":").concat(JSON.stringify(j),"; 可选值:[").concat(Object.keys(t.type[s]),"]"))}j.exports={_throw:function(j){throw new Error("CnChar Error:"+j)},_wran:e,arg:r,isCnChar:h,has:l,spell:function(j,f){var s=f[0].split("");x("spell",f=f.splice(1));var k=l(f,r.poly),n=l(f,r.tone),c=[];for(var e in j)for(var t=j[e],g=t[0],u=0;u2&&void 0!==arguments[2]?arguments[2]:"low";-1!==j.indexOf("v")&&(j=j.replace("v","ü"));var k=j[j.length-1],c=-1,i=!1;if(parseInt(k).toString()===k){j=j.substr(0,j.length-1);var e=n(j);c=e.index,k=parseInt(k),i=!0,f&&(j=m(j,c-1,k))}else{var r=n(j);c=r.index,k=r.tone,f||0===k||(j=r.spell)}return"low"===s?j=j.toLowerCase():"up"===s&&(j=j.toUpperCase()),{spell:j,tone:k,index:c,isTrans:i}}}},function(j){j.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(j){j.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(j,f,s){var k=s(2),n=s(3);j.exports={spell:k,stroke:n}},function(j,f,s){var k=s(3),n={simple:"simple",trad:"trad",array:"array"},c={};function i(){for(var j=arguments.length,f=new Array(j),s=0;s2&&void 0!==arguments[2]&&arguments[2];j=o(j,s),f=o(f,s);for(var k=0;ki)return t;if(nf?t:j1?s-1:0),n=1;n1?s-1:0),n=1;n1&&void 0!==arguments[1]&&arguments[1];if(!f)return j.charCodeAt(0);var s=c(j);return-1===s?j.charCodeAt(0):s}}},function(j,f,s){function k(j){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(j){return typeof j}:function(j){return j&&"function"==typeof Symbol&&j.constructor===Symbol&&j!==Symbol.prototype?"symbol":typeof j})(j)}var n=s(4),c=s(5),i=s(18),e={},r={letter:"letter",shape:"shape",count:"count",name:"name",detail:"detail",array:"array",order:"order"};function t(j){if(-1===j.plugins.indexOf("order")){j.plugins.push("order");var f=j._origin.stroke;e=j._;var s=function(){for(var j=arguments.length,s=new Array(j),k=0;k0)return console.error("orderToWord: 参数笔画名数组有误:"+t.join(",")),[];var l=[],o={start:i.has(f,c.start),match:i.has(f,c.match),matchorder:i.has(f,c.matchorder),contain:i.has(f,c.contain),simple:i.has(f,c.simple),trad:i.has(f,c.trad)};return o.simple||o.trad||(o.simple=o.trad=!0),o.simple&&r(l,h,o,k),o.trad&&i.dict.getTradOrders&&r(l,h,o,i.dict.getTradOrders()),i.has(f,c.array)?l:l.join("")}function r(j,f,s,k){if(s.match)for(var n in k){for(var c=!1,i=0;if.length)break;k[u]===f&&j.push(u)}return j}function t(j,f,s,k){var n={shape:f,letter:s};k&&(n.sameLetterTo=k),e.orders[j]=n}!function(){for(var j in e.orders={},e._base=r,n){var f=n[j],s=f.name,k=f.shape;if(-1!==s.indexOf("|")){var c=s.split("|"),i=k.split("|");t(c[0],i[0],j,c[1]),t(c[1],i[1],j,c[0])}else t(s,k,j)}}(),j.exports=function(j){j.orderToWord=e,j.type.orderToWord=c,i=j._}},function(j,f,s){function k(j){return function(j){if(Array.isArray(j))return n(j)}(j)||function(j){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(j))return Array.from(j)}(j)||function(j,f){if(!j)return;if("string"==typeof j)return n(j,f);var s=Object.prototype.toString.call(j).slice(8,-1);"Object"===s&&j.constructor&&(s=j.constructor.name);if("Map"===s||"Set"===s)return Array.from(s);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(j,f)}(j)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(j,f){(null==f||f>j.length)&&(f=j.length);for(var s=0,k=new Array(f);sj.length)&&(f=j.length);for(var s=0,k=new Array(f);sf;f++)i(j,j._deferreds[f]);j._deferreds=null}function l(j,f){var s=!1;try{j((function(j){s||(s=!0,r(f,j))}),(function(j){s||(s=!0,t(f,j))}))}catch(j){if(s)return;s=!0,t(f,j)}}var o=setTimeout;c.prototype.catch=function(j){return this.then(null,j)},c.prototype.then=function(j,f){var k=new this.constructor(s);return i(this,new function(j,f,s){this.onFulfilled="function"==typeof j?j:null,this.onRejected="function"==typeof f?f:null,this.promise=s}(j,f,k)),k},c.prototype.finally=j,c.all=function(j){return new c((function(s,k){function n(j,f){try{if(f&&("object"==e(f)||"function"==typeof f)){var r=f.then;if("function"==typeof r)return void r.call(f,(function(f){n(j,f)}),k)}c[j]=f,0==--i&&s(c)}catch(j){k(j)}}if(!f(j))return k(new TypeError("Promise.all accepts an array"));var c=Array.prototype.slice.call(j);if(0===c.length)return s([]);for(var i=c.length,r=0;c.length>r;r++)n(r,c[r])}))},c.resolve=function(j){return j&&"object"==e(j)&&j.constructor===c?j:new c((function(f){f(j)}))},c.reject=function(j){return new c((function(f,s){s(j)}))},c.race=function(j){return new c((function(s,k){if(!f(j))return k(new TypeError("Promise.race accepts an array"));for(var n=0,i=j.length;i>n;n++)c.resolve(j[n]).then(s,k)}))},c._immediateFn="function"==typeof k&&function(j){k(j)}||function(j){o(j,0)},c._unhandledRejectionFn=function(j){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",j)};var g=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n)return n;throw Error("unable to locate global object")}();"Promise"in g?g.Promise.prototype.finally||(g.Promise.prototype.finally=j):g.Promise=c}))}).call(this,s(29).setImmediate,s(0))},function(j,f,s){(function(j){var k=void 0!==j&&j||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function c(j,f){this._id=j,this._clearFn=f}f.setTimeout=function(){return new c(n.call(setTimeout,k,arguments),clearTimeout)},f.setInterval=function(){return new c(n.call(setInterval,k,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(j){j&&j.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(k,this._id)},f.enroll=function(j,f){clearTimeout(j._idleTimeoutId),j._idleTimeout=f},f.unenroll=function(j){clearTimeout(j._idleTimeoutId),j._idleTimeout=-1},f._unrefActive=f.active=function(j){clearTimeout(j._idleTimeoutId);var f=j._idleTimeout;f>=0&&(j._idleTimeoutId=setTimeout((function(){j._onTimeout&&j._onTimeout()}),f))},s(30),f.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==j&&j.setImmediate||this&&this.setImmediate,f.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==j&&j.clearImmediate||this&&this.clearImmediate}).call(this,s(0))},function(j,f,s){(function(j,f){!function(j,s){"use strict";if(!j.setImmediate){var k,n,c,i,e,r=1,t={},h=!1,l=j.document,o=Object.getPrototypeOf&&Object.getPrototypeOf(j);o=o&&o.setTimeout?o:j,"[object process]"==={}.toString.call(j.process)?k=function(j){f.nextTick((function(){u(j)}))}:!function(){if(j.postMessage&&!j.importScripts){var f=!0,s=j.onmessage;return j.onmessage=function(){f=!1},j.postMessage("","*"),j.onmessage=s,f}}()?j.MessageChannel?((c=new MessageChannel).port1.onmessage=function(j){u(j.data)},k=function(j){c.port2.postMessage(j)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,k=function(j){var f=l.createElement("script");f.onreadystatechange=function(){u(j),f.onreadystatechange=null,n.removeChild(f),f=null},n.appendChild(f)}):k=function(j){setTimeout(u,0,j)}:(i="setImmediate$"+Math.random()+"$",e=function(f){f.source===j&&"string"==typeof f.data&&0===f.data.indexOf(i)&&u(+f.data.slice(i.length))},j.addEventListener?j.addEventListener("message",e,!1):j.attachEvent("onmessage",e),k=function(f){j.postMessage(i+f,"*")}),o.setImmediate=function(j){"function"!=typeof j&&(j=new Function(""+j));for(var f=new Array(arguments.length-1),s=0;s1)for(var s=1;s=this.writers.length?f(!0):this.writers[j].animateCharacter({onComplete:function(){f(!1)}})}},{key:"_animateStep",value:function(j,f){var s=this;this._animateSingle(j,(function(k){k?f():setTimeout((function(){s._animateStep(j+1,f)}),s.option.delayBetweenStrokes)}))}}])&&k(f.prototype,s),n&&k(f,n),j}();function a(){var j=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"==typeof window)return console.error("Draw 方法仅支持在浏览器环境下使用"),null;if(!(j=h(j)))throw new Error("Draw 方法text必须含有中文");return f.text=j,new d(f)}a.TYPE=e,a.TEST_STATUS=t,j.exports=a},function(j,f){j.exports=function(j){return j.webpackPolyfill||(j.deprecate=function(){},j.paths=[],j.children||(j.children=[]),Object.defineProperty(j,"loaded",{enumerable:!0,get:function(){return j.l}}),Object.defineProperty(j,"id",{enumerable:!0,get:function(){return j.i}}),j.webpackPolyfill=1),j}},function(j,f){var s={NORMAL:"normal",ANIMATION:"animation",STROKE:"stroke",TEST:"test"},k={showOutline:!0,showCharacter:!0,currentColor:"#b44",clear:!0,length:60,padding:5,outlineColor:"#ddd",backgroundColor:"#fff",strokeColor:"#555",radicalColor:null,strokeFadeDuration:400,lineStraight:!0,lineCross:!0,lineWidth:1,lineColor:"#ddd",lineDash:!0,border:!0,borderWidth:1,borderColor:"#ccc",borderDash:!1,strokeAnimationSpeed:1,delayBetweenStrokes:1e3,delayBetweenLoops:200,autoAnimate:!0,animateComplete:function(){},stepByStep:!0,loopAnimate:!1,strokeHighlightSpeed:20,highlightColor:"#aaf",drawingColor:"#333",drawingWidth:4,showHintAfterMisses:3,highlightOnComplete:!0,highlightCompleteColor:null,onTestStatus:null};function n(j){return void 0===j}j.exports={TYPE:s,Option:k,merge:function(j,f){var c={};for(var i in f){var e=f[i];for(var r in e)n(e[r])||(c[r]=e[r])}return function(j,f){(f=f||Object.keys(k)).forEach((function(f){n(j[f])&&(j[f]=k[f])}))}(c),c.width=c.length,c.height=c.length,function(j,f,k){j===s.ANIMATION?f.animation&&!n(f.animation.showCharacter)||(k.showCharacter=!1):j===s.STROKE&&(k.showCharacter=!1)}(j,f,c),c},TEST_STATUS:{MISTAKE:"mistake",CORRECT:"correct",COMPLETE:"complete"}}},function(j,f){function s(j){var f=j.charCodeAt(0);return f>=19968&&f<=40869}j.exports={isCnChar:s,pickCnChar:function(j){for(var f="",k=0;k1&&(o+='stroke-width="'.concat(n,'"')),s){var g=f/2;l+='\n ')}k&&(l+='\n '));var u="";return e&&(u="".concat(r,"px ").concat(h?"dashed":"solid"," ").concat(t)),{lineHTML:l,border:u}}}},function(j,f,s){var k=s(6);function n(j){var f=j.option,s=j.target,n=j.strokes,i=j.radStrokes,e=j.cloneSvg,r=j.current,t=j.width,h=i.length>0&&f.radicalColor?f.radicalColor:null,l=e(f);s.appendChild(l);var o=document.createElementNS("http://www.w3.org/2000/svg","g"),g=k.getScalingTransform(t,t,f.padding);o.setAttributeNS(null,"transform",g.transform),l.appendChild(o);for(var u=0;u<=r;u++){var d=f.strokeColor;u===r&&f.currentColor?d=f.currentColor:h&&-1!==i.indexOf(u)&&(d=h),c(n[u],o,d)}if(f.showOutline&&r+1<=n.length)for(var a=r+1;a @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/cnchar/cnchar.min.js b/npm/cnchar/cnchar.min.js index ca55ba9..7762594 100644 --- a/npm/cnchar/cnchar.min.js +++ b/npm/cnchar/cnchar.min.js @@ -1 +1 @@ -!function(n){var e={};function r(o){if(e[o])return e[o].exports;var t=e[o]={i:o,l:!1,exports:{}};return n[o].call(t.exports,t,t.exports,r),t.l=!0,t.exports}r.m=n,r.c=e,r.d=function(n,e,o){r.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:o})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,e){if(1&e&&(n=r(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var t in n)r.d(o,t,function(e){return n[e]}.bind(null,t));return o},r.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(e,"a",e),e},r.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},r.p="",r(r.s=3)}([function(n,e,r){var o=r(1),t=r(6),a={simple:"simple",trad:"trad",poly:"poly",alltone:"alltone",array:"array"},i={};function u(n){n=n.toLowerCase();var e=i.removeTone(n,!1);if(-1===e.index){if(!o[e.spell])throw new Error("【spellInfo】错误的拼音: "+n);e.index=parseInt(o[e.spell][0])+1}for(var r="",a=e.spell,u=0;u4;g&&(h-=5),-1!==l.indexOf(f)||!s.alltone&&h!==u.tone||s.poly&&!g||(l+=f)}if(s.trad&&i.convert){for(var d="",y=0;y=19968&&e<=40869}function c(n,e){return-1!==n.indexOf(e)}function f(n,e){l._.poly&&h(n,v),c(e,s.first)&&h(n,g),c(e,s.up)?h(n,d):c(e,s.low)||h(n,y)}function h(n,e){n.forEach((function(r,o){"string"!=typeof r?r.forEach((function(n,o){r[o]=e(n)})):":"!==r[0]&&(n[o]=e(r))}))}function g(n){return n[0]}function d(n){return n.toUpperCase()}function y(n){return d(n[0])+n.substr(1)}function v(n){return n.toLowerCase()}function m(n,e,r,o,t,a){var i={res:n,poly:!1},u=parseInt(e[r+1]);return i.isPolyWord=u>=5,o||t?(i.isPolyWord&&(u-=5,o&&(i.poly=!0)),t&&(i.res=k(n,a,u)),i):i}function w(n,e){if(e)return{spell:n};for(var r=0;r=0;i--){var u=e[i];a[n][u]||(t.push(u),e.splice(i,1))}var s=[],p=[],f=function n(r,t){"object"!==o(r)?(t=t||s,c(e,r)&&t.push(r)):r.forEach((function(e){n(e,t)}))};-1===l.plugins.indexOf("trad")&&(c(e,"simple")&&s.push("simple"),c(e,"trad")&&s.push("trad")),"spell"===n?c(e,"up")&&c(e,"low")&&s.push("low"):"stroke"===n?c(e,"order")?(f("array",p),c(e,"letter")?(f(["detail","shape","name","count"]),f("letter",p)):c(e,"detail")?f(["shape","name","count"]):c(e,"shape")?f(["name","count"]):c(e,"name")&&f(["count"])):(f(["detail","shape","name","letter"]),f("count",p)):"orderToWord"===n?c(e,"match")?f(["match-order","contain","start"]):c(e,"match-order")?f(["contain","start"]):c(e,"contain")&&f(["start"]):"strokeToWord"===n||"spellToWord"===n||"idiom"===n&&(c(e,"spell")?f(["stroke","char"]):c(e,"stroke")?f(["tone","char"]):f(["tone"])),S(t,"无效",n),S(s,"被忽略",n),S(p,"冗余",n)}}function S(n,e,r){n.length>0&&u("以下参数".concat(e,":").concat(JSON.stringify(n),"; 可选值:[").concat(Object.keys(l.type[r]),"]"))}n.exports={_throw:function(n){throw new Error("CnChar Error:"+n)},_wran:u,arg:s,isCnChar:p,has:c,spell:function(n,e){var r=e[0].split("");z("spell",e=e.splice(1));var o=c(e,s.poly),t=c(e,s.tone),a=[];for(var u in n)for(var l=n[u],h=l[0],g=0;g2&&void 0!==arguments[2]?arguments[2]:"low";-1!==n.indexOf("v")&&(n=n.replace("v","ü"));var o=n[n.length-1],a=-1,i=!1;if(parseInt(o).toString()===o){n=n.substr(0,n.length-1);var u=t(n);a=u.index,o=parseInt(o),i=!0,e&&(n=k(n,a-1,o))}else{var s=t(n);a=s.index,o=s.tone,e||0===o||(n=s.spell)}return"low"===r?n=n.toLowerCase():"up"===r&&(n=n.toUpperCase()),{spell:n,tone:o,index:a,isTrans:i}}}},function(n){n.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(n){n.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(n,e,r){var o=r(1),t=r(2);n.exports={spell:o,stroke:t}},function(n,e,r){var o=r(2),t={simple:"simple",trad:"trad",array:"array"},a={};function i(){for(var n=arguments.length,e=new Array(n),r=0;r2&&void 0!==arguments[2]&&arguments[2];n=f(n,r),e=f(e,r);for(var o=0;oi)return l;if(te?l:n1?r-1:0),t=1;t1?r-1:0),t=1;t1&&void 0!==arguments[1]&&arguments[1];if(!e)return n.charCodeAt(0);var r=a(n);return-1===r?n.charCodeAt(0):r}}}]); \ No newline at end of file +!function(n){var e={};function r(o){if(e[o])return e[o].exports;var t=e[o]={i:o,l:!1,exports:{}};return n[o].call(t.exports,t,t.exports,r),t.l=!0,t.exports}r.m=n,r.c=e,r.d=function(n,e,o){r.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:o})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,e){if(1&e&&(n=r(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var t in n)r.d(o,t,function(e){return n[e]}.bind(null,t));return o},r.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(e,"a",e),e},r.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},r.p="",r(r.s=3)}([function(n,e,r){var o=r(1),t=r(6),a={simple:"simple",trad:"trad",poly:"poly",alltone:"alltone",array:"array"},i={};function u(n){n=n.toLowerCase();var e=i.removeTone(n,!1);if(-1===e.index){if(!o[e.spell])throw new Error("【spellInfo】错误的拼音: "+n);e.index=parseInt(o[e.spell][0])+1}for(var r="",a=e.spell,u=0;u4;g&&(h-=5),-1!==l.indexOf(f)||!s.alltone&&h!==u.tone||s.poly&&!g||(l+=f)}if(s.trad&&i.convert){for(var d="",y=0;y=19968&&e<=40869}function c(n,e){return-1!==n.indexOf(e)}function f(n,e){l._.poly&&h(n,v),c(e,s.first)&&h(n,g),c(e,s.up)?h(n,d):c(e,s.low)||h(n,y)}function h(n,e){n.forEach((function(r,o){"string"!=typeof r?r.forEach((function(n,o){r[o]=e(n)})):":"!==r[0]&&(n[o]=e(r))}))}function g(n){return n[0]}function d(n){return n.toUpperCase()}function y(n){return d(n[0])+n.substr(1)}function v(n){return n.toLowerCase()}function m(n,e,r,o,t,a){var i={res:n,poly:!1},u=parseInt(e[r+1]);return i.isPolyWord=u>=5,o||t?(i.isPolyWord&&(u-=5,o&&(i.poly=!0)),t&&(i.res=k(n,a,u)),i):i}function w(n,e){if(e)return{spell:n};for(var r=0;r=0;i--){var u=e[i];a[n][u]||(t.push(u),e.splice(i,1))}var s=[],p=[],f=function n(r,t){"object"!==o(r)?(t=t||s,c(e,r)&&t.push(r)):r.forEach((function(e){n(e,t)}))};-1===l.plugins.indexOf("trad")&&(c(e,"simple")&&s.push("simple"),c(e,"trad")&&s.push("trad")),"spell"===n?c(e,"up")&&c(e,"low")&&s.push("low"):"stroke"===n?c(e,"order")?(f("array",p),c(e,"letter")?(f(["detail","shape","name","count"]),f("letter",p)):c(e,"detail")?f(["shape","name","count"]):c(e,"shape")?f(["name","count"]):c(e,"name")&&f(["count"])):(f(["detail","shape","name","letter"]),f("count",p)):"orderToWord"===n?c(e,"match")?f(["match-order","contain","start"]):c(e,"match-order")?f(["contain","start"]):c(e,"contain")&&f(["start"]):"strokeToWord"===n||"spellToWord"===n||"idiom"===n&&(c(e,"spell")?f(["stroke","char"]):c(e,"stroke")?f(["tone","char"]):f(["tone"])),S(t,"无效",n),S(s,"被忽略",n),S(p,"冗余",n)}}function S(n,e,r){n.length>0&&u("以下参数".concat(e,":").concat(JSON.stringify(n),"; 可选值:[").concat(Object.keys(l.type[r]),"]"))}n.exports={_throw:function(n){throw new Error("CnChar Error:"+n)},_wran:u,arg:s,isCnChar:p,has:c,spell:function(n,e){var r=e[0].split("");z("spell",e=e.splice(1));var o=c(e,s.poly),t=c(e,s.tone),a=[];for(var u in n)for(var l=n[u],h=l[0],g=0;g2&&void 0!==arguments[2]?arguments[2]:"low";-1!==n.indexOf("v")&&(n=n.replace("v","ü"));var o=n[n.length-1],a=-1,i=!1;if(parseInt(o).toString()===o){n=n.substr(0,n.length-1);var u=t(n);a=u.index,o=parseInt(o),i=!0,e&&(n=k(n,a-1,o))}else{var s=t(n);a=s.index,o=s.tone,e||0===o||(n=s.spell)}return"low"===r?n=n.toLowerCase():"up"===r&&(n=n.toUpperCase()),{spell:n,tone:o,index:a,isTrans:i}}}},function(n){n.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(n){n.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(n,e,r){var o=r(1),t=r(2);n.exports={spell:o,stroke:t}},function(n,e,r){var o=r(2),t={simple:"simple",trad:"trad",array:"array"},a={};function i(){for(var n=arguments.length,e=new Array(n),r=0;r2&&void 0!==arguments[2]&&arguments[2];n=f(n,r),e=f(e,r);for(var o=0;oi)return l;if(te?l:n1?r-1:0),t=1;t1?r-1:0),t=1;t1&&void 0!==arguments[1]&&arguments[1];if(!e)return n.charCodeAt(0);var r=a(n);return-1===r?n.charCodeAt(0):r}}}]); \ No newline at end of file diff --git a/npm/cnchar/index.d.ts b/npm/cnchar/index.d.ts index e25f5d6..3047101 100644 --- a/npm/cnchar/index.d.ts +++ b/npm/cnchar/index.d.ts @@ -4,7 +4,7 @@ declare type spellArg = 'array' | 'low' | 'up' | 'first' | 'poly' | 'tone' | 'si declare type strokeArg = 'letter' | 'shape' | 'count' | 'name' | 'detail' | 'array' | 'order' | 'simple' | 'trad'; declare type spellToWordArg = 'poly' | 'alltone' | 'array' | 'simple' | 'trad'; declare type strokeToWordArg = 'array' | 'simple' | 'trad'; -declare type pluginArg = 'order' | 'trad' | 'poly' | 'draw' | 'idiom' | 'xhy'; +declare type pluginArg = 'order' | 'trad' | 'poly' | 'draw' | 'idiom' | 'xhy' | 'radical'; declare type toneType = 0 | 1 | 2 | 3 | 4; declare type compareType = 'more' | 'less' | 'even'; @@ -35,6 +35,7 @@ export declare interface CnCharStatic { orderToWord?: object; idiom?: object; xhy?: object; + radical?: object; }; check: boolean; readonly version: string; diff --git a/npm/cnchar/package.json b/npm/cnchar/package.json index 1514437..4d4dbb7 100644 --- a/npm/cnchar/package.json +++ b/npm/cnchar/package.json @@ -1,6 +1,6 @@ { "name": "cnchar", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "scripts": {}, diff --git a/npm/cnchar/tool.js b/npm/cnchar/tool.js index 492effe..1f7323e 100644 --- a/npm/cnchar/tool.js +++ b/npm/cnchar/tool.js @@ -374,7 +374,7 @@ function checkArgs(type, args, jumpNext) { } else { check(['tone']); } - } else if (type === 'xhy') {} + } else if (type === 'xhy') {} else if (type === 'radical') {} warnArgs(useless, '无效', type); warnArgs(ignore, '被忽略', type); diff --git a/npm/cnchar/version.js b/npm/cnchar/version.js index 63afc50..a0494a0 100644 --- a/npm/cnchar/version.js +++ b/npm/cnchar/version.js @@ -1,3 +1,3 @@ "use strict"; -module.exports = '2.2.4'; \ No newline at end of file +module.exports = '2.2.5'; \ No newline at end of file diff --git a/npm/draw/README.md b/npm/draw/README.md index a13bb2d..8b18be5 100644 --- a/npm/draw/README.md +++ b/npm/draw/README.md @@ -54,20 +54,21 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) - * [5.9 汉字、拼音工具方法](#59-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - + [5.9.1 查询拼音详细信息: spellInfo](#591-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) - + [5.9.2 拼音音调操作: transformTone](#592-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) - + [5.9.3 是否是汉字: isCnChar](#593-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) - + [5.9.4 比较拼音(汉字)大小: compareSpell](#594-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) - + [5.9.5 比较汉字笔画数大小: compareStroke](#595-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) - + [5.9.6 根据拼音排序: sortSpell](#596-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) - + [5.9.7 根据笔画数排序: sortStroke](#597-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) - * [5.10 其他 api](#510-%E5%85%B6%E4%BB%96-api) - + [5.10.1 .use()](#5101-use) - + [5.10.2 .type](#5102-type) - + [5.10.3 .check](#5103-check) - + [5.10.4 .version](#5104-version) - + [5.10.5 .plugins](#5105-plugins) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) - [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) @@ -76,24 +77,26 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) - * [6.8 使用实例大全:](#68-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) - + [6.8.0 安装使用](#680-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) - + [6.8.1 cnchar 基础库功能](#681-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.2 cnchar-poly 库功能](#682-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.3 cnchar-order 库功能](#683-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.4 cnchar-trad 库功能](#684-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) - - [6.8.4.1 convert 字体转换](#6841-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) - - [6.8.4.2 spell 和 stroke 方法](#6842-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) - + [6.8.5 cnchar-idiom 库功能](#685-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.6 cnchar-xhy 库功能](#686-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.7 工具方法](#687-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - - [6.8.7.1 spellInfo](#6871-spellinfo) - - [6.8.7.2 isCnChar](#6872-iscnchar) - - [6.8.7.3 transformTone](#6873-transformtone) - - [6.8.7.4 compareSpell](#6874-comparespell) - - [6.8.7.5 compareStroke](#6875-comparestroke) - - [6.8.7.6 sortSpell](#6876-sortspell) - - [6.8.7.7 sortStroke](#6877-sortstroke) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) - [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/draw/package.json b/npm/draw/package.json index 85f3927..dcef9e5 100644 --- a/npm/draw/package.json +++ b/npm/draw/package.json @@ -1,6 +1,6 @@ { "name": "cnchar-draw", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "cnchar.draw.min.js", diff --git a/npm/hanzi-util-base/hanzi.base.min.js b/npm/hanzi-util-base/hanzi.base.min.js index ca55ba9..7762594 100644 --- a/npm/hanzi-util-base/hanzi.base.min.js +++ b/npm/hanzi-util-base/hanzi.base.min.js @@ -1 +1 @@ -!function(n){var e={};function r(o){if(e[o])return e[o].exports;var t=e[o]={i:o,l:!1,exports:{}};return n[o].call(t.exports,t,t.exports,r),t.l=!0,t.exports}r.m=n,r.c=e,r.d=function(n,e,o){r.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:o})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,e){if(1&e&&(n=r(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var t in n)r.d(o,t,function(e){return n[e]}.bind(null,t));return o},r.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(e,"a",e),e},r.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},r.p="",r(r.s=3)}([function(n,e,r){var o=r(1),t=r(6),a={simple:"simple",trad:"trad",poly:"poly",alltone:"alltone",array:"array"},i={};function u(n){n=n.toLowerCase();var e=i.removeTone(n,!1);if(-1===e.index){if(!o[e.spell])throw new Error("【spellInfo】错误的拼音: "+n);e.index=parseInt(o[e.spell][0])+1}for(var r="",a=e.spell,u=0;u4;g&&(h-=5),-1!==l.indexOf(f)||!s.alltone&&h!==u.tone||s.poly&&!g||(l+=f)}if(s.trad&&i.convert){for(var d="",y=0;y=19968&&e<=40869}function c(n,e){return-1!==n.indexOf(e)}function f(n,e){l._.poly&&h(n,v),c(e,s.first)&&h(n,g),c(e,s.up)?h(n,d):c(e,s.low)||h(n,y)}function h(n,e){n.forEach((function(r,o){"string"!=typeof r?r.forEach((function(n,o){r[o]=e(n)})):":"!==r[0]&&(n[o]=e(r))}))}function g(n){return n[0]}function d(n){return n.toUpperCase()}function y(n){return d(n[0])+n.substr(1)}function v(n){return n.toLowerCase()}function m(n,e,r,o,t,a){var i={res:n,poly:!1},u=parseInt(e[r+1]);return i.isPolyWord=u>=5,o||t?(i.isPolyWord&&(u-=5,o&&(i.poly=!0)),t&&(i.res=k(n,a,u)),i):i}function w(n,e){if(e)return{spell:n};for(var r=0;r=0;i--){var u=e[i];a[n][u]||(t.push(u),e.splice(i,1))}var s=[],p=[],f=function n(r,t){"object"!==o(r)?(t=t||s,c(e,r)&&t.push(r)):r.forEach((function(e){n(e,t)}))};-1===l.plugins.indexOf("trad")&&(c(e,"simple")&&s.push("simple"),c(e,"trad")&&s.push("trad")),"spell"===n?c(e,"up")&&c(e,"low")&&s.push("low"):"stroke"===n?c(e,"order")?(f("array",p),c(e,"letter")?(f(["detail","shape","name","count"]),f("letter",p)):c(e,"detail")?f(["shape","name","count"]):c(e,"shape")?f(["name","count"]):c(e,"name")&&f(["count"])):(f(["detail","shape","name","letter"]),f("count",p)):"orderToWord"===n?c(e,"match")?f(["match-order","contain","start"]):c(e,"match-order")?f(["contain","start"]):c(e,"contain")&&f(["start"]):"strokeToWord"===n||"spellToWord"===n||"idiom"===n&&(c(e,"spell")?f(["stroke","char"]):c(e,"stroke")?f(["tone","char"]):f(["tone"])),S(t,"无效",n),S(s,"被忽略",n),S(p,"冗余",n)}}function S(n,e,r){n.length>0&&u("以下参数".concat(e,":").concat(JSON.stringify(n),"; 可选值:[").concat(Object.keys(l.type[r]),"]"))}n.exports={_throw:function(n){throw new Error("CnChar Error:"+n)},_wran:u,arg:s,isCnChar:p,has:c,spell:function(n,e){var r=e[0].split("");z("spell",e=e.splice(1));var o=c(e,s.poly),t=c(e,s.tone),a=[];for(var u in n)for(var l=n[u],h=l[0],g=0;g2&&void 0!==arguments[2]?arguments[2]:"low";-1!==n.indexOf("v")&&(n=n.replace("v","ü"));var o=n[n.length-1],a=-1,i=!1;if(parseInt(o).toString()===o){n=n.substr(0,n.length-1);var u=t(n);a=u.index,o=parseInt(o),i=!0,e&&(n=k(n,a-1,o))}else{var s=t(n);a=s.index,o=s.tone,e||0===o||(n=s.spell)}return"low"===r?n=n.toLowerCase():"up"===r&&(n=n.toUpperCase()),{spell:n,tone:o,index:a,isTrans:i}}}},function(n){n.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(n){n.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(n,e,r){var o=r(1),t=r(2);n.exports={spell:o,stroke:t}},function(n,e,r){var o=r(2),t={simple:"simple",trad:"trad",array:"array"},a={};function i(){for(var n=arguments.length,e=new Array(n),r=0;r2&&void 0!==arguments[2]&&arguments[2];n=f(n,r),e=f(e,r);for(var o=0;oi)return l;if(te?l:n1?r-1:0),t=1;t1?r-1:0),t=1;t1&&void 0!==arguments[1]&&arguments[1];if(!e)return n.charCodeAt(0);var r=a(n);return-1===r?n.charCodeAt(0):r}}}]); \ No newline at end of file +!function(n){var e={};function r(o){if(e[o])return e[o].exports;var t=e[o]={i:o,l:!1,exports:{}};return n[o].call(t.exports,t,t.exports,r),t.l=!0,t.exports}r.m=n,r.c=e,r.d=function(n,e,o){r.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:o})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,e){if(1&e&&(n=r(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var t in n)r.d(o,t,function(e){return n[e]}.bind(null,t));return o},r.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(e,"a",e),e},r.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},r.p="",r(r.s=3)}([function(n,e,r){var o=r(1),t=r(6),a={simple:"simple",trad:"trad",poly:"poly",alltone:"alltone",array:"array"},i={};function u(n){n=n.toLowerCase();var e=i.removeTone(n,!1);if(-1===e.index){if(!o[e.spell])throw new Error("【spellInfo】错误的拼音: "+n);e.index=parseInt(o[e.spell][0])+1}for(var r="",a=e.spell,u=0;u4;g&&(h-=5),-1!==l.indexOf(f)||!s.alltone&&h!==u.tone||s.poly&&!g||(l+=f)}if(s.trad&&i.convert){for(var d="",y=0;y=19968&&e<=40869}function c(n,e){return-1!==n.indexOf(e)}function f(n,e){l._.poly&&h(n,v),c(e,s.first)&&h(n,g),c(e,s.up)?h(n,d):c(e,s.low)||h(n,y)}function h(n,e){n.forEach((function(r,o){"string"!=typeof r?r.forEach((function(n,o){r[o]=e(n)})):":"!==r[0]&&(n[o]=e(r))}))}function g(n){return n[0]}function d(n){return n.toUpperCase()}function y(n){return d(n[0])+n.substr(1)}function v(n){return n.toLowerCase()}function m(n,e,r,o,t,a){var i={res:n,poly:!1},u=parseInt(e[r+1]);return i.isPolyWord=u>=5,o||t?(i.isPolyWord&&(u-=5,o&&(i.poly=!0)),t&&(i.res=k(n,a,u)),i):i}function w(n,e){if(e)return{spell:n};for(var r=0;r=0;i--){var u=e[i];a[n][u]||(t.push(u),e.splice(i,1))}var s=[],p=[],f=function n(r,t){"object"!==o(r)?(t=t||s,c(e,r)&&t.push(r)):r.forEach((function(e){n(e,t)}))};-1===l.plugins.indexOf("trad")&&(c(e,"simple")&&s.push("simple"),c(e,"trad")&&s.push("trad")),"spell"===n?c(e,"up")&&c(e,"low")&&s.push("low"):"stroke"===n?c(e,"order")?(f("array",p),c(e,"letter")?(f(["detail","shape","name","count"]),f("letter",p)):c(e,"detail")?f(["shape","name","count"]):c(e,"shape")?f(["name","count"]):c(e,"name")&&f(["count"])):(f(["detail","shape","name","letter"]),f("count",p)):"orderToWord"===n?c(e,"match")?f(["match-order","contain","start"]):c(e,"match-order")?f(["contain","start"]):c(e,"contain")&&f(["start"]):"strokeToWord"===n||"spellToWord"===n||"idiom"===n&&(c(e,"spell")?f(["stroke","char"]):c(e,"stroke")?f(["tone","char"]):f(["tone"])),S(t,"无效",n),S(s,"被忽略",n),S(p,"冗余",n)}}function S(n,e,r){n.length>0&&u("以下参数".concat(e,":").concat(JSON.stringify(n),"; 可选值:[").concat(Object.keys(l.type[r]),"]"))}n.exports={_throw:function(n){throw new Error("CnChar Error:"+n)},_wran:u,arg:s,isCnChar:p,has:c,spell:function(n,e){var r=e[0].split("");z("spell",e=e.splice(1));var o=c(e,s.poly),t=c(e,s.tone),a=[];for(var u in n)for(var l=n[u],h=l[0],g=0;g2&&void 0!==arguments[2]?arguments[2]:"low";-1!==n.indexOf("v")&&(n=n.replace("v","ü"));var o=n[n.length-1],a=-1,i=!1;if(parseInt(o).toString()===o){n=n.substr(0,n.length-1);var u=t(n);a=u.index,o=parseInt(o),i=!0,e&&(n=k(n,a-1,o))}else{var s=t(n);a=s.index,o=s.tone,e||0===o||(n=s.spell)}return"low"===r?n=n.toLowerCase():"up"===r&&(n=n.toUpperCase()),{spell:n,tone:o,index:a,isTrans:i}}}},function(n){n.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(n){n.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(n,e,r){var o=r(1),t=r(2);n.exports={spell:o,stroke:t}},function(n,e,r){var o=r(2),t={simple:"simple",trad:"trad",array:"array"},a={};function i(){for(var n=arguments.length,e=new Array(n),r=0;r2&&void 0!==arguments[2]&&arguments[2];n=f(n,r),e=f(e,r);for(var o=0;oi)return l;if(te?l:n1?r-1:0),t=1;t1?r-1:0),t=1;t1&&void 0!==arguments[1]&&arguments[1];if(!e)return n.charCodeAt(0);var r=a(n);return-1===r?n.charCodeAt(0):r}}}]); \ No newline at end of file diff --git a/npm/hanzi-util-base/index.d.ts b/npm/hanzi-util-base/index.d.ts index e25f5d6..3047101 100644 --- a/npm/hanzi-util-base/index.d.ts +++ b/npm/hanzi-util-base/index.d.ts @@ -4,7 +4,7 @@ declare type spellArg = 'array' | 'low' | 'up' | 'first' | 'poly' | 'tone' | 'si declare type strokeArg = 'letter' | 'shape' | 'count' | 'name' | 'detail' | 'array' | 'order' | 'simple' | 'trad'; declare type spellToWordArg = 'poly' | 'alltone' | 'array' | 'simple' | 'trad'; declare type strokeToWordArg = 'array' | 'simple' | 'trad'; -declare type pluginArg = 'order' | 'trad' | 'poly' | 'draw' | 'idiom' | 'xhy'; +declare type pluginArg = 'order' | 'trad' | 'poly' | 'draw' | 'idiom' | 'xhy' | 'radical'; declare type toneType = 0 | 1 | 2 | 3 | 4; declare type compareType = 'more' | 'less' | 'even'; @@ -35,6 +35,7 @@ export declare interface CnCharStatic { orderToWord?: object; idiom?: object; xhy?: object; + radical?: object; }; check: boolean; readonly version: string; diff --git a/npm/hanzi-util-base/package.json b/npm/hanzi-util-base/package.json index 20b3953..b68f51d 100644 --- a/npm/hanzi-util-base/package.json +++ b/npm/hanzi-util-base/package.json @@ -1,6 +1,6 @@ { "name": "hanzi-util-base", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "hanzi.base.min.js", @@ -27,6 +27,6 @@ }, "homepage": "https://www.theajack.com/cnchar/", "dependencies": { - "cnchar": "^2.2.4" + "cnchar": "^2.2.5" } } \ No newline at end of file diff --git a/npm/hanzi-util/hanzi.util.min.js b/npm/hanzi-util/hanzi.util.min.js index 7bec019..1b82bfe 100644 --- a/npm/hanzi-util/hanzi.util.min.js +++ b/npm/hanzi-util/hanzi.util.min.js @@ -1,2 +1,2 @@ !function(j){var f={};function s(k){if(f[k])return f[k].exports;var n=f[k]={i:k,l:!1,exports:{}};return j[k].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.m=j,s.c=f,s.d=function(j,f,k){s.o(j,f)||Object.defineProperty(j,f,{enumerable:!0,get:k})},s.r=function(j){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(j,"__esModule",{value:!0})},s.t=function(j,f){if(1&f&&(j=s(j)),8&f)return j;if(4&f&&"object"==typeof j&&j&&j.__esModule)return j;var k=Object.create(null);if(s.r(k),Object.defineProperty(k,"default",{enumerable:!0,value:j}),2&f&&"string"!=typeof j)for(var n in j)s.d(k,n,function(f){return j[f]}.bind(null,n));return k},s.n=function(j){var f=j&&j.__esModule?function(){return j.default}:function(){return j};return s.d(f,"a",f),f},s.o=function(j,f){return Object.prototype.hasOwnProperty.call(j,f)},s.p="",s(s.s=7)}([function(j,f){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(j){"object"==typeof window&&(s=window)}j.exports=s},function(j,f,s){var k=s(2),n=s(11),c={simple:"simple",trad:"trad",poly:"poly",alltone:"alltone",array:"array"},i={};function e(j){j=j.toLowerCase();var f=i.removeTone(j,!1);if(-1===f.index){if(!k[f.spell])throw new Error("【spellInfo】错误的拼音: "+j);f.index=parseInt(k[f.spell][0])+1}for(var s="",c=f.spell,e=0;e4;u&&(g-=5),-1!==t.indexOf(o)||!r.alltone&&g!==e.tone||r.poly&&!u||(t+=o)}if(r.trad&&i.convert){for(var d="",a=0;a=s.length){if(!j.at)return j.et=!1,this.st=this.st.filter((function(f){return f!==j})),void j.I({canceled:!1});j.ut=0}j.ht[j.ut].run(this).then((function(){j.et&&(j.ut++,f.ft(j))}))}},i.prototype.vt=function(){return this.st.map((function(j){return j.ht[j.ut]}))},i.prototype.pauseAll=function(){this.vt().forEach((function(j){return j.pause()}))},i.prototype.resumeAll=function(){this.vt().forEach((function(j){return j.resume()}))},i.prototype.cancelMutations=function(j){var f=this;this.st.forEach((function(s){s.ct.forEach((function(k){j.forEach((function(j){(0<=k.indexOf(j)||0<=j.indexOf(k))&&f.lt(s)}))}))}))},i.prototype.cancelAll=function(){this.cancelMutations([""])},i.prototype.lt=function(j){j.et=!1;for(var f=j.ut;f=this.B.showHintAfterMisses&&this.F.run(r.highlightStroke(j,this.B.highlightColor,this.B.strokeHighlightSpeed))),this.kt=null}else this.kt=null},o.prototype.cancel=function(){this.et=!1,this.kt&&this.F.run(r.removeUserStroke(this.kt.id,this.B.drawingFadeDuration))},o.prototype.bt=function(j){i(this.B.onCorrectStroke,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt-1,drawnPath:l(this.kt)});var f=h.showStroke("main",this.pt,this.B.strokeFadeDuration);this.pt+=1,this.yt=0,this.pt===this.V.strokes.length&&(this.et=!1,i(this.B.onComplete,{character:this.V.symbol,totalMistakes:this.wt}),this.B.highlightOnComplete&&(f=f.concat(r.highlightCompleteChar(this.V,this.B.highlightCompleteColor,2*this.B.strokeHighlightDuration)))),this.F.run(f)},o.prototype.Ct=function(){this.yt+=1,this.wt+=1,i(this.B.onMistake,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt,drawnPath:l(this.kt)})},o.prototype.mt=function(){return this.V.strokes[this.pt]},j.exports=o},function(j,f,s){"use strict";var k=s(0),n=k.average,c=k.assign,i=s(2),e=i.cosineSimilarity,r=i.equals,t=i.frechetDist,h=i.distance,l=i.subtract,o=i.normalizeCurve,g=i.rotate,u=i.length,d=function(j,f){var s,k,c,i=(k=[],c=(s=j)[0],s.slice(1).forEach((function(j){k.push(l(j,c)),c=j})),k),r=f.getVectors(),t=i.map((function(j){var f=r.map((function(f){return e(f,j)}));return Math.max.apply(Math,f)}));return 0=19968&&f<=40869}function l(j,f){return-1!==j.indexOf(f)}function o(j,f){t._.poly&&g(j,y),l(f,r.first)&&g(j,u),l(f,r.up)?g(j,d):l(f,r.low)||g(j,a)}function g(j,f){j.forEach((function(s,k){"string"!=typeof s?s.forEach((function(j,k){s[k]=f(j)})):":"!==s[0]&&(j[k]=f(s))}))}function u(j){return j[0]}function d(j){return j.toUpperCase()}function a(j){return d(j[0])+j.substr(1)}function y(j){return j.toLowerCase()}function p(j,f,s,k,n,c){var i={res:j,poly:!1},e=parseInt(f[s+1]);return i.isPolyWord=e>=5,k||n?(i.isPolyWord&&(e-=5,k&&(i.poly=!0)),n&&(i.res=m(j,c,e)),i):i}function b(j,f){if(f)return{spell:j};for(var s=0;s=0;i--){var e=f[i];c[j][e]||(n.push(e),f.splice(i,1))}var r=[],h=[],o=function j(s,n){"object"!==k(s)?(n=n||r,l(f,s)&&n.push(s)):s.forEach((function(f){j(f,n)}))};-1===t.plugins.indexOf("trad")&&(l(f,"simple")&&r.push("simple"),l(f,"trad")&&r.push("trad")),"spell"===j?l(f,"up")&&l(f,"low")&&r.push("low"):"stroke"===j?l(f,"order")?(o("array",h),l(f,"letter")?(o(["detail","shape","name","count"]),o("letter",h)):l(f,"detail")?o(["shape","name","count"]):l(f,"shape")?o(["name","count"]):l(f,"name")&&o(["count"])):(o(["detail","shape","name","letter"]),o("count",h)):"orderToWord"===j?l(f,"match")?o(["match-order","contain","start"]):l(f,"match-order")?o(["contain","start"]):l(f,"contain")&&o(["start"]):"strokeToWord"===j||"spellToWord"===j||"idiom"===j&&(l(f,"spell")?o(["stroke","char"]):l(f,"stroke")?o(["tone","char"]):o(["tone"])),v(n,"无效",j),v(r,"被忽略",j),v(h,"冗余",j)}}function v(j,f,s){j.length>0&&e("以下参数".concat(f,":").concat(JSON.stringify(j),"; 可选值:[").concat(Object.keys(t.type[s]),"]"))}j.exports={_throw:function(j){throw new Error("CnChar Error:"+j)},_wran:e,arg:r,isCnChar:h,has:l,spell:function(j,f){var s=f[0].split("");x("spell",f=f.splice(1));var k=l(f,r.poly),n=l(f,r.tone),c=[];for(var e in j)for(var t=j[e],g=t[0],u=0;u2&&void 0!==arguments[2]?arguments[2]:"low";-1!==j.indexOf("v")&&(j=j.replace("v","ü"));var k=j[j.length-1],c=-1,i=!1;if(parseInt(k).toString()===k){j=j.substr(0,j.length-1);var e=n(j);c=e.index,k=parseInt(k),i=!0,f&&(j=m(j,c-1,k))}else{var r=n(j);c=r.index,k=r.tone,f||0===k||(j=r.spell)}return"low"===s?j=j.toLowerCase():"up"===s&&(j=j.toUpperCase()),{spell:j,tone:k,index:c,isTrans:i}}}},function(j){j.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(j){j.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(j,f,s){var k=s(2),n=s(3);j.exports={spell:k,stroke:n}},function(j,f,s){var k=s(3),n={simple:"simple",trad:"trad",array:"array"},c={};function i(){for(var j=arguments.length,f=new Array(j),s=0;s2&&void 0!==arguments[2]&&arguments[2];j=o(j,s),f=o(f,s);for(var k=0;ki)return t;if(nf?t:j1?s-1:0),n=1;n1?s-1:0),n=1;n1&&void 0!==arguments[1]&&arguments[1];if(!f)return j.charCodeAt(0);var s=c(j);return-1===s?j.charCodeAt(0):s}}},function(j,f,s){function k(j){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(j){return typeof j}:function(j){return j&&"function"==typeof Symbol&&j.constructor===Symbol&&j!==Symbol.prototype?"symbol":typeof j})(j)}var n=s(4),c=s(5),i=s(18),e={},r={letter:"letter",shape:"shape",count:"count",name:"name",detail:"detail",array:"array",order:"order"};function t(j){if(-1===j.plugins.indexOf("order")){j.plugins.push("order");var f=j._origin.stroke;e=j._;var s=function(){for(var j=arguments.length,s=new Array(j),k=0;k0)return console.error("orderToWord: 参数笔画名数组有误:"+t.join(",")),[];var l=[],o={start:i.has(f,c.start),match:i.has(f,c.match),matchorder:i.has(f,c.matchorder),contain:i.has(f,c.contain),simple:i.has(f,c.simple),trad:i.has(f,c.trad)};return o.simple||o.trad||(o.simple=o.trad=!0),o.simple&&r(l,h,o,k),o.trad&&i.dict.getTradOrders&&r(l,h,o,i.dict.getTradOrders()),i.has(f,c.array)?l:l.join("")}function r(j,f,s,k){if(s.match)for(var n in k){for(var c=!1,i=0;if.length)break;k[u]===f&&j.push(u)}return j}function t(j,f,s,k){var n={shape:f,letter:s};k&&(n.sameLetterTo=k),e.orders[j]=n}!function(){for(var j in e.orders={},e._base=r,n){var f=n[j],s=f.name,k=f.shape;if(-1!==s.indexOf("|")){var c=s.split("|"),i=k.split("|");t(c[0],i[0],j,c[1]),t(c[1],i[1],j,c[0])}else t(s,k,j)}}(),j.exports=function(j){j.orderToWord=e,j.type.orderToWord=c,i=j._}},function(j,f,s){function k(j){return function(j){if(Array.isArray(j))return n(j)}(j)||function(j){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(j))return Array.from(j)}(j)||function(j,f){if(!j)return;if("string"==typeof j)return n(j,f);var s=Object.prototype.toString.call(j).slice(8,-1);"Object"===s&&j.constructor&&(s=j.constructor.name);if("Map"===s||"Set"===s)return Array.from(s);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(j,f)}(j)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(j,f){(null==f||f>j.length)&&(f=j.length);for(var s=0,k=new Array(f);sj.length)&&(f=j.length);for(var s=0,k=new Array(f);sf;f++)i(j,j._deferreds[f]);j._deferreds=null}function l(j,f){var s=!1;try{j((function(j){s||(s=!0,r(f,j))}),(function(j){s||(s=!0,t(f,j))}))}catch(j){if(s)return;s=!0,t(f,j)}}var o=setTimeout;c.prototype.catch=function(j){return this.then(null,j)},c.prototype.then=function(j,f){var k=new this.constructor(s);return i(this,new function(j,f,s){this.onFulfilled="function"==typeof j?j:null,this.onRejected="function"==typeof f?f:null,this.promise=s}(j,f,k)),k},c.prototype.finally=j,c.all=function(j){return new c((function(s,k){function n(j,f){try{if(f&&("object"==e(f)||"function"==typeof f)){var r=f.then;if("function"==typeof r)return void r.call(f,(function(f){n(j,f)}),k)}c[j]=f,0==--i&&s(c)}catch(j){k(j)}}if(!f(j))return k(new TypeError("Promise.all accepts an array"));var c=Array.prototype.slice.call(j);if(0===c.length)return s([]);for(var i=c.length,r=0;c.length>r;r++)n(r,c[r])}))},c.resolve=function(j){return j&&"object"==e(j)&&j.constructor===c?j:new c((function(f){f(j)}))},c.reject=function(j){return new c((function(f,s){s(j)}))},c.race=function(j){return new c((function(s,k){if(!f(j))return k(new TypeError("Promise.race accepts an array"));for(var n=0,i=j.length;i>n;n++)c.resolve(j[n]).then(s,k)}))},c._immediateFn="function"==typeof k&&function(j){k(j)}||function(j){o(j,0)},c._unhandledRejectionFn=function(j){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",j)};var g=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n)return n;throw Error("unable to locate global object")}();"Promise"in g?g.Promise.prototype.finally||(g.Promise.prototype.finally=j):g.Promise=c}))}).call(this,s(29).setImmediate,s(0))},function(j,f,s){(function(j){var k=void 0!==j&&j||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function c(j,f){this._id=j,this._clearFn=f}f.setTimeout=function(){return new c(n.call(setTimeout,k,arguments),clearTimeout)},f.setInterval=function(){return new c(n.call(setInterval,k,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(j){j&&j.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(k,this._id)},f.enroll=function(j,f){clearTimeout(j._idleTimeoutId),j._idleTimeout=f},f.unenroll=function(j){clearTimeout(j._idleTimeoutId),j._idleTimeout=-1},f._unrefActive=f.active=function(j){clearTimeout(j._idleTimeoutId);var f=j._idleTimeout;f>=0&&(j._idleTimeoutId=setTimeout((function(){j._onTimeout&&j._onTimeout()}),f))},s(30),f.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==j&&j.setImmediate||this&&this.setImmediate,f.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==j&&j.clearImmediate||this&&this.clearImmediate}).call(this,s(0))},function(j,f,s){(function(j,f){!function(j,s){"use strict";if(!j.setImmediate){var k,n,c,i,e,r=1,t={},h=!1,l=j.document,o=Object.getPrototypeOf&&Object.getPrototypeOf(j);o=o&&o.setTimeout?o:j,"[object process]"==={}.toString.call(j.process)?k=function(j){f.nextTick((function(){u(j)}))}:!function(){if(j.postMessage&&!j.importScripts){var f=!0,s=j.onmessage;return j.onmessage=function(){f=!1},j.postMessage("","*"),j.onmessage=s,f}}()?j.MessageChannel?((c=new MessageChannel).port1.onmessage=function(j){u(j.data)},k=function(j){c.port2.postMessage(j)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,k=function(j){var f=l.createElement("script");f.onreadystatechange=function(){u(j),f.onreadystatechange=null,n.removeChild(f),f=null},n.appendChild(f)}):k=function(j){setTimeout(u,0,j)}:(i="setImmediate$"+Math.random()+"$",e=function(f){f.source===j&&"string"==typeof f.data&&0===f.data.indexOf(i)&&u(+f.data.slice(i.length))},j.addEventListener?j.addEventListener("message",e,!1):j.attachEvent("onmessage",e),k=function(f){j.postMessage(i+f,"*")}),o.setImmediate=function(j){"function"!=typeof j&&(j=new Function(""+j));for(var f=new Array(arguments.length-1),s=0;s1)for(var s=1;s=this.writers.length?f(!0):this.writers[j].animateCharacter({onComplete:function(){f(!1)}})}},{key:"_animateStep",value:function(j,f){var s=this;this._animateSingle(j,(function(k){k?f():setTimeout((function(){s._animateStep(j+1,f)}),s.option.delayBetweenStrokes)}))}}])&&k(f.prototype,s),n&&k(f,n),j}();function a(){var j=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"==typeof window)return console.error("Draw 方法仅支持在浏览器环境下使用"),null;if(!(j=h(j)))throw new Error("Draw 方法text必须含有中文");return f.text=j,new d(f)}a.TYPE=e,a.TEST_STATUS=t,j.exports=a},function(j,f){j.exports=function(j){return j.webpackPolyfill||(j.deprecate=function(){},j.paths=[],j.children||(j.children=[]),Object.defineProperty(j,"loaded",{enumerable:!0,get:function(){return j.l}}),Object.defineProperty(j,"id",{enumerable:!0,get:function(){return j.i}}),j.webpackPolyfill=1),j}},function(j,f){var s={NORMAL:"normal",ANIMATION:"animation",STROKE:"stroke",TEST:"test"},k={showOutline:!0,showCharacter:!0,currentColor:"#b44",clear:!0,length:60,padding:5,outlineColor:"#ddd",backgroundColor:"#fff",strokeColor:"#555",radicalColor:null,strokeFadeDuration:400,lineStraight:!0,lineCross:!0,lineWidth:1,lineColor:"#ddd",lineDash:!0,border:!0,borderWidth:1,borderColor:"#ccc",borderDash:!1,strokeAnimationSpeed:1,delayBetweenStrokes:1e3,delayBetweenLoops:200,autoAnimate:!0,animateComplete:function(){},stepByStep:!0,loopAnimate:!1,strokeHighlightSpeed:20,highlightColor:"#aaf",drawingColor:"#333",drawingWidth:4,showHintAfterMisses:3,highlightOnComplete:!0,highlightCompleteColor:null,onTestStatus:null};function n(j){return void 0===j}j.exports={TYPE:s,Option:k,merge:function(j,f){var c={};for(var i in f){var e=f[i];for(var r in e)n(e[r])||(c[r]=e[r])}return function(j,f){(f=f||Object.keys(k)).forEach((function(f){n(j[f])&&(j[f]=k[f])}))}(c),c.width=c.length,c.height=c.length,function(j,f,k){j===s.ANIMATION?f.animation&&!n(f.animation.showCharacter)||(k.showCharacter=!1):j===s.STROKE&&(k.showCharacter=!1)}(j,f,c),c},TEST_STATUS:{MISTAKE:"mistake",CORRECT:"correct",COMPLETE:"complete"}}},function(j,f){function s(j){var f=j.charCodeAt(0);return f>=19968&&f<=40869}j.exports={isCnChar:s,pickCnChar:function(j){for(var f="",k=0;k1&&(o+='stroke-width="'.concat(n,'"')),s){var g=f/2;l+='\n ')}k&&(l+='\n '));var u="";return e&&(u="".concat(r,"px ").concat(h?"dashed":"solid"," ").concat(t)),{lineHTML:l,border:u}}}},function(j,f,s){var k=s(6);function n(j){var f=j.option,s=j.target,n=j.strokes,i=j.radStrokes,e=j.cloneSvg,r=j.current,t=j.width,h=i.length>0&&f.radicalColor?f.radicalColor:null,l=e(f);s.appendChild(l);var o=document.createElementNS("http://www.w3.org/2000/svg","g"),g=k.getScalingTransform(t,t,f.padding);o.setAttributeNS(null,"transform",g.transform),l.appendChild(o);for(var u=0;u<=r;u++){var d=f.strokeColor;u===r&&f.currentColor?d=f.currentColor:h&&-1!==i.indexOf(u)&&(d=h),c(n[u],o,d)}if(f.showOutline&&r+1<=n.length)for(var a=r+1;a=s.length){if(!j.at)return j.et=!1,this.st=this.st.filter((function(f){return f!==j})),void j.I({canceled:!1});j.ut=0}j.ht[j.ut].run(this).then((function(){j.et&&(j.ut++,f.ft(j))}))}},i.prototype.vt=function(){return this.st.map((function(j){return j.ht[j.ut]}))},i.prototype.pauseAll=function(){this.vt().forEach((function(j){return j.pause()}))},i.prototype.resumeAll=function(){this.vt().forEach((function(j){return j.resume()}))},i.prototype.cancelMutations=function(j){var f=this;this.st.forEach((function(s){s.ct.forEach((function(k){j.forEach((function(j){(0<=k.indexOf(j)||0<=j.indexOf(k))&&f.lt(s)}))}))}))},i.prototype.cancelAll=function(){this.cancelMutations([""])},i.prototype.lt=function(j){j.et=!1;for(var f=j.ut;f=this.B.showHintAfterMisses&&this.F.run(r.highlightStroke(j,this.B.highlightColor,this.B.strokeHighlightSpeed))),this.kt=null}else this.kt=null},o.prototype.cancel=function(){this.et=!1,this.kt&&this.F.run(r.removeUserStroke(this.kt.id,this.B.drawingFadeDuration))},o.prototype.bt=function(j){i(this.B.onCorrectStroke,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt-1,drawnPath:l(this.kt)});var f=h.showStroke("main",this.pt,this.B.strokeFadeDuration);this.pt+=1,this.yt=0,this.pt===this.V.strokes.length&&(this.et=!1,i(this.B.onComplete,{character:this.V.symbol,totalMistakes:this.wt}),this.B.highlightOnComplete&&(f=f.concat(r.highlightCompleteChar(this.V,this.B.highlightCompleteColor,2*this.B.strokeHighlightDuration)))),this.F.run(f)},o.prototype.Ct=function(){this.yt+=1,this.wt+=1,i(this.B.onMistake,{character:this.V.symbol,strokeNum:this.pt,mistakesOnStroke:this.yt,totalMistakes:this.wt,strokesRemaining:this.V.strokes.length-this.pt,drawnPath:l(this.kt)})},o.prototype.mt=function(){return this.V.strokes[this.pt]},j.exports=o},function(j,f,s){"use strict";var k=s(0),n=k.average,c=k.assign,i=s(2),e=i.cosineSimilarity,r=i.equals,t=i.frechetDist,h=i.distance,l=i.subtract,o=i.normalizeCurve,g=i.rotate,u=i.length,d=function(j,f){var s,k,c,i=(k=[],c=(s=j)[0],s.slice(1).forEach((function(j){k.push(l(j,c)),c=j})),k),r=f.getVectors(),t=i.map((function(j){var f=r.map((function(f){return e(f,j)}));return Math.max.apply(Math,f)}));return 0=19968&&f<=40869}function l(j,f){return-1!==j.indexOf(f)}function o(j,f){t._.poly&&g(j,y),l(f,r.first)&&g(j,u),l(f,r.up)?g(j,d):l(f,r.low)||g(j,a)}function g(j,f){j.forEach((function(s,k){"string"!=typeof s?s.forEach((function(j,k){s[k]=f(j)})):":"!==s[0]&&(j[k]=f(s))}))}function u(j){return j[0]}function d(j){return j.toUpperCase()}function a(j){return d(j[0])+j.substr(1)}function y(j){return j.toLowerCase()}function p(j,f,s,k,n,c){var i={res:j,poly:!1},e=parseInt(f[s+1]);return i.isPolyWord=e>=5,k||n?(i.isPolyWord&&(e-=5,k&&(i.poly=!0)),n&&(i.res=m(j,c,e)),i):i}function b(j,f){if(f)return{spell:j};for(var s=0;s=0;i--){var e=f[i];c[j][e]||(n.push(e),f.splice(i,1))}var r=[],h=[],o=function j(s,n){"object"!==k(s)?(n=n||r,l(f,s)&&n.push(s)):s.forEach((function(f){j(f,n)}))};-1===t.plugins.indexOf("trad")&&(l(f,"simple")&&r.push("simple"),l(f,"trad")&&r.push("trad")),"spell"===j?l(f,"up")&&l(f,"low")&&r.push("low"):"stroke"===j?l(f,"order")?(o("array",h),l(f,"letter")?(o(["detail","shape","name","count"]),o("letter",h)):l(f,"detail")?o(["shape","name","count"]):l(f,"shape")?o(["name","count"]):l(f,"name")&&o(["count"])):(o(["detail","shape","name","letter"]),o("count",h)):"orderToWord"===j?l(f,"match")?o(["match-order","contain","start"]):l(f,"match-order")?o(["contain","start"]):l(f,"contain")&&o(["start"]):"strokeToWord"===j||"spellToWord"===j||"idiom"===j&&(l(f,"spell")?o(["stroke","char"]):l(f,"stroke")?o(["tone","char"]):o(["tone"])),v(n,"无效",j),v(r,"被忽略",j),v(h,"冗余",j)}}function v(j,f,s){j.length>0&&e("以下参数".concat(f,":").concat(JSON.stringify(j),"; 可选值:[").concat(Object.keys(t.type[s]),"]"))}j.exports={_throw:function(j){throw new Error("CnChar Error:"+j)},_wran:e,arg:r,isCnChar:h,has:l,spell:function(j,f){var s=f[0].split("");x("spell",f=f.splice(1));var k=l(f,r.poly),n=l(f,r.tone),c=[];for(var e in j)for(var t=j[e],g=t[0],u=0;u2&&void 0!==arguments[2]?arguments[2]:"low";-1!==j.indexOf("v")&&(j=j.replace("v","ü"));var k=j[j.length-1],c=-1,i=!1;if(parseInt(k).toString()===k){j=j.substr(0,j.length-1);var e=n(j);c=e.index,k=parseInt(k),i=!0,f&&(j=m(j,c-1,k))}else{var r=n(j);c=r.index,k=r.tone,f||0===k||(j=r.spell)}return"low"===s?j=j.toLowerCase():"up"===s&&(j=j.toUpperCase()),{spell:j,tone:k,index:c,isTrans:i}}}},function(j){j.exports=JSON.parse('["b","p","m","f","d","t","n","l","g","k","h","j","q","x","zh","ch","sh","r","z","c","s","y","w"]')},function(j){j.exports=JSON.parse('{"的":"de","咳":"ké","长":"cháng","广":"guǎng","厂":"chǎng","卜":"bo","无":"wú","蔚":"wèi","压":"yā","扎":"zhā","教":"jiāo","觉":"jiào","虎":"hǔ","熏":"xūn","陶":"táo","子":"zǐ","脯":"fǔ","抹":"mā","食":"shí","鸟":"niǎo","任":"rèn","假":"jiǎ","得":"de","膀":"bǎng","塞":"sāi","辟":"pì","红":"hóng"}')},function(j,f,s){var k=s(2),n=s(3);j.exports={spell:k,stroke:n}},function(j,f,s){var k=s(3),n={simple:"simple",trad:"trad",array:"array"},c={};function i(){for(var j=arguments.length,f=new Array(j),s=0;s2&&void 0!==arguments[2]&&arguments[2];j=o(j,s),f=o(f,s);for(var k=0;ki)return t;if(nf?t:j1?s-1:0),n=1;n1?s-1:0),n=1;n1&&void 0!==arguments[1]&&arguments[1];if(!f)return j.charCodeAt(0);var s=c(j);return-1===s?j.charCodeAt(0):s}}},function(j,f,s){function k(j){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(j){return typeof j}:function(j){return j&&"function"==typeof Symbol&&j.constructor===Symbol&&j!==Symbol.prototype?"symbol":typeof j})(j)}var n=s(4),c=s(5),i=s(18),e={},r={letter:"letter",shape:"shape",count:"count",name:"name",detail:"detail",array:"array",order:"order"};function t(j){if(-1===j.plugins.indexOf("order")){j.plugins.push("order");var f=j._origin.stroke;e=j._;var s=function(){for(var j=arguments.length,s=new Array(j),k=0;k0)return console.error("orderToWord: 参数笔画名数组有误:"+t.join(",")),[];var l=[],o={start:i.has(f,c.start),match:i.has(f,c.match),matchorder:i.has(f,c.matchorder),contain:i.has(f,c.contain),simple:i.has(f,c.simple),trad:i.has(f,c.trad)};return o.simple||o.trad||(o.simple=o.trad=!0),o.simple&&r(l,h,o,k),o.trad&&i.dict.getTradOrders&&r(l,h,o,i.dict.getTradOrders()),i.has(f,c.array)?l:l.join("")}function r(j,f,s,k){if(s.match)for(var n in k){for(var c=!1,i=0;if.length)break;k[u]===f&&j.push(u)}return j}function t(j,f,s,k){var n={shape:f,letter:s};k&&(n.sameLetterTo=k),e.orders[j]=n}!function(){for(var j in e.orders={},e._base=r,n){var f=n[j],s=f.name,k=f.shape;if(-1!==s.indexOf("|")){var c=s.split("|"),i=k.split("|");t(c[0],i[0],j,c[1]),t(c[1],i[1],j,c[0])}else t(s,k,j)}}(),j.exports=function(j){j.orderToWord=e,j.type.orderToWord=c,i=j._}},function(j,f,s){function k(j){return function(j){if(Array.isArray(j))return n(j)}(j)||function(j){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(j))return Array.from(j)}(j)||function(j,f){if(!j)return;if("string"==typeof j)return n(j,f);var s=Object.prototype.toString.call(j).slice(8,-1);"Object"===s&&j.constructor&&(s=j.constructor.name);if("Map"===s||"Set"===s)return Array.from(s);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return n(j,f)}(j)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(j,f){(null==f||f>j.length)&&(f=j.length);for(var s=0,k=new Array(f);sj.length)&&(f=j.length);for(var s=0,k=new Array(f);sf;f++)i(j,j._deferreds[f]);j._deferreds=null}function l(j,f){var s=!1;try{j((function(j){s||(s=!0,r(f,j))}),(function(j){s||(s=!0,t(f,j))}))}catch(j){if(s)return;s=!0,t(f,j)}}var o=setTimeout;c.prototype.catch=function(j){return this.then(null,j)},c.prototype.then=function(j,f){var k=new this.constructor(s);return i(this,new function(j,f,s){this.onFulfilled="function"==typeof j?j:null,this.onRejected="function"==typeof f?f:null,this.promise=s}(j,f,k)),k},c.prototype.finally=j,c.all=function(j){return new c((function(s,k){function n(j,f){try{if(f&&("object"==e(f)||"function"==typeof f)){var r=f.then;if("function"==typeof r)return void r.call(f,(function(f){n(j,f)}),k)}c[j]=f,0==--i&&s(c)}catch(j){k(j)}}if(!f(j))return k(new TypeError("Promise.all accepts an array"));var c=Array.prototype.slice.call(j);if(0===c.length)return s([]);for(var i=c.length,r=0;c.length>r;r++)n(r,c[r])}))},c.resolve=function(j){return j&&"object"==e(j)&&j.constructor===c?j:new c((function(f){f(j)}))},c.reject=function(j){return new c((function(f,s){s(j)}))},c.race=function(j){return new c((function(s,k){if(!f(j))return k(new TypeError("Promise.race accepts an array"));for(var n=0,i=j.length;i>n;n++)c.resolve(j[n]).then(s,k)}))},c._immediateFn="function"==typeof k&&function(j){k(j)}||function(j){o(j,0)},c._unhandledRejectionFn=function(j){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",j)};var g=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n)return n;throw Error("unable to locate global object")}();"Promise"in g?g.Promise.prototype.finally||(g.Promise.prototype.finally=j):g.Promise=c}))}).call(this,s(29).setImmediate,s(0))},function(j,f,s){(function(j){var k=void 0!==j&&j||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function c(j,f){this._id=j,this._clearFn=f}f.setTimeout=function(){return new c(n.call(setTimeout,k,arguments),clearTimeout)},f.setInterval=function(){return new c(n.call(setInterval,k,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(j){j&&j.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(k,this._id)},f.enroll=function(j,f){clearTimeout(j._idleTimeoutId),j._idleTimeout=f},f.unenroll=function(j){clearTimeout(j._idleTimeoutId),j._idleTimeout=-1},f._unrefActive=f.active=function(j){clearTimeout(j._idleTimeoutId);var f=j._idleTimeout;f>=0&&(j._idleTimeoutId=setTimeout((function(){j._onTimeout&&j._onTimeout()}),f))},s(30),f.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==j&&j.setImmediate||this&&this.setImmediate,f.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==j&&j.clearImmediate||this&&this.clearImmediate}).call(this,s(0))},function(j,f,s){(function(j,f){!function(j,s){"use strict";if(!j.setImmediate){var k,n,c,i,e,r=1,t={},h=!1,l=j.document,o=Object.getPrototypeOf&&Object.getPrototypeOf(j);o=o&&o.setTimeout?o:j,"[object process]"==={}.toString.call(j.process)?k=function(j){f.nextTick((function(){u(j)}))}:!function(){if(j.postMessage&&!j.importScripts){var f=!0,s=j.onmessage;return j.onmessage=function(){f=!1},j.postMessage("","*"),j.onmessage=s,f}}()?j.MessageChannel?((c=new MessageChannel).port1.onmessage=function(j){u(j.data)},k=function(j){c.port2.postMessage(j)}):l&&"onreadystatechange"in l.createElement("script")?(n=l.documentElement,k=function(j){var f=l.createElement("script");f.onreadystatechange=function(){u(j),f.onreadystatechange=null,n.removeChild(f),f=null},n.appendChild(f)}):k=function(j){setTimeout(u,0,j)}:(i="setImmediate$"+Math.random()+"$",e=function(f){f.source===j&&"string"==typeof f.data&&0===f.data.indexOf(i)&&u(+f.data.slice(i.length))},j.addEventListener?j.addEventListener("message",e,!1):j.attachEvent("onmessage",e),k=function(f){j.postMessage(i+f,"*")}),o.setImmediate=function(j){"function"!=typeof j&&(j=new Function(""+j));for(var f=new Array(arguments.length-1),s=0;s1)for(var s=1;s=this.writers.length?f(!0):this.writers[j].animateCharacter({onComplete:function(){f(!1)}})}},{key:"_animateStep",value:function(j,f){var s=this;this._animateSingle(j,(function(k){k?f():setTimeout((function(){s._animateStep(j+1,f)}),s.option.delayBetweenStrokes)}))}}])&&k(f.prototype,s),n&&k(f,n),j}();function a(){var j=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"==typeof window)return console.error("Draw 方法仅支持在浏览器环境下使用"),null;if(!(j=h(j)))throw new Error("Draw 方法text必须含有中文");return f.text=j,new d(f)}a.TYPE=e,a.TEST_STATUS=t,j.exports=a},function(j,f){j.exports=function(j){return j.webpackPolyfill||(j.deprecate=function(){},j.paths=[],j.children||(j.children=[]),Object.defineProperty(j,"loaded",{enumerable:!0,get:function(){return j.l}}),Object.defineProperty(j,"id",{enumerable:!0,get:function(){return j.i}}),j.webpackPolyfill=1),j}},function(j,f){var s={NORMAL:"normal",ANIMATION:"animation",STROKE:"stroke",TEST:"test"},k={showOutline:!0,showCharacter:!0,currentColor:"#b44",clear:!0,length:60,padding:5,outlineColor:"#ddd",backgroundColor:"#fff",strokeColor:"#555",radicalColor:null,strokeFadeDuration:400,lineStraight:!0,lineCross:!0,lineWidth:1,lineColor:"#ddd",lineDash:!0,border:!0,borderWidth:1,borderColor:"#ccc",borderDash:!1,strokeAnimationSpeed:1,delayBetweenStrokes:1e3,delayBetweenLoops:200,autoAnimate:!0,animateComplete:function(){},stepByStep:!0,loopAnimate:!1,strokeHighlightSpeed:20,highlightColor:"#aaf",drawingColor:"#333",drawingWidth:4,showHintAfterMisses:3,highlightOnComplete:!0,highlightCompleteColor:null,onTestStatus:null};function n(j){return void 0===j}j.exports={TYPE:s,Option:k,merge:function(j,f){var c={};for(var i in f){var e=f[i];for(var r in e)n(e[r])||(c[r]=e[r])}return function(j,f){(f=f||Object.keys(k)).forEach((function(f){n(j[f])&&(j[f]=k[f])}))}(c),c.width=c.length,c.height=c.length,function(j,f,k){j===s.ANIMATION?f.animation&&!n(f.animation.showCharacter)||(k.showCharacter=!1):j===s.STROKE&&(k.showCharacter=!1)}(j,f,c),c},TEST_STATUS:{MISTAKE:"mistake",CORRECT:"correct",COMPLETE:"complete"}}},function(j,f){function s(j){var f=j.charCodeAt(0);return f>=19968&&f<=40869}j.exports={isCnChar:s,pickCnChar:function(j){for(var f="",k=0;k1&&(o+='stroke-width="'.concat(n,'"')),s){var g=f/2;l+='\n ')}k&&(l+='\n '));var u="";return e&&(u="".concat(r,"px ").concat(h?"dashed":"solid"," ").concat(t)),{lineHTML:l,border:u}}}},function(j,f,s){var k=s(6);function n(j){var f=j.option,s=j.target,n=j.strokes,i=j.radStrokes,e=j.cloneSvg,r=j.current,t=j.width,h=i.length>0&&f.radicalColor?f.radicalColor:null,l=e(f);s.appendChild(l);var o=document.createElementNS("http://www.w3.org/2000/svg","g"),g=k.getScalingTransform(t,t,f.padding);o.setAttributeNS(null,"transform",g.transform),l.appendChild(o);for(var u=0;u<=r;u++){var d=f.strokeColor;u===r&&f.currentColor?d=f.currentColor:h&&-1!==i.indexOf(u)&&(d=h),c(n[u],o,d)}if(f.showOutline&&r+1<=n.length)for(var a=r+1;a @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/idiom/package.json b/npm/idiom/package.json index 93b1220..ce4ceaa 100644 --- a/npm/idiom/package.json +++ b/npm/idiom/package.json @@ -1,6 +1,6 @@ { "name": "cnchar-idiom", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "cnchar.idiom.min.js", diff --git a/npm/order/README.md b/npm/order/README.md index a13bb2d..8b18be5 100644 --- a/npm/order/README.md +++ b/npm/order/README.md @@ -54,20 +54,21 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) - * [5.9 汉字、拼音工具方法](#59-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - + [5.9.1 查询拼音详细信息: spellInfo](#591-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) - + [5.9.2 拼音音调操作: transformTone](#592-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) - + [5.9.3 是否是汉字: isCnChar](#593-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) - + [5.9.4 比较拼音(汉字)大小: compareSpell](#594-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) - + [5.9.5 比较汉字笔画数大小: compareStroke](#595-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) - + [5.9.6 根据拼音排序: sortSpell](#596-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) - + [5.9.7 根据笔画数排序: sortStroke](#597-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) - * [5.10 其他 api](#510-%E5%85%B6%E4%BB%96-api) - + [5.10.1 .use()](#5101-use) - + [5.10.2 .type](#5102-type) - + [5.10.3 .check](#5103-check) - + [5.10.4 .version](#5104-version) - + [5.10.5 .plugins](#5105-plugins) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) - [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) @@ -76,24 +77,26 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) - * [6.8 使用实例大全:](#68-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) - + [6.8.0 安装使用](#680-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) - + [6.8.1 cnchar 基础库功能](#681-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.2 cnchar-poly 库功能](#682-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.3 cnchar-order 库功能](#683-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.4 cnchar-trad 库功能](#684-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) - - [6.8.4.1 convert 字体转换](#6841-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) - - [6.8.4.2 spell 和 stroke 方法](#6842-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) - + [6.8.5 cnchar-idiom 库功能](#685-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.6 cnchar-xhy 库功能](#686-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.7 工具方法](#687-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - - [6.8.7.1 spellInfo](#6871-spellinfo) - - [6.8.7.2 isCnChar](#6872-iscnchar) - - [6.8.7.3 transformTone](#6873-transformtone) - - [6.8.7.4 compareSpell](#6874-comparespell) - - [6.8.7.5 compareStroke](#6875-comparestroke) - - [6.8.7.6 sortSpell](#6876-sortspell) - - [6.8.7.7 sortStroke](#6877-sortstroke) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) - [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/order/package.json b/npm/order/package.json index 4e16eeb..ac098bf 100644 --- a/npm/order/package.json +++ b/npm/order/package.json @@ -1,6 +1,6 @@ { "name": "cnchar-order", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "cnchar.order.min.js", diff --git a/npm/poly/README.md b/npm/poly/README.md index a13bb2d..8b18be5 100644 --- a/npm/poly/README.md +++ b/npm/poly/README.md @@ -54,20 +54,21 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) - * [5.9 汉字、拼音工具方法](#59-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - + [5.9.1 查询拼音详细信息: spellInfo](#591-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) - + [5.9.2 拼音音调操作: transformTone](#592-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) - + [5.9.3 是否是汉字: isCnChar](#593-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) - + [5.9.4 比较拼音(汉字)大小: compareSpell](#594-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) - + [5.9.5 比较汉字笔画数大小: compareStroke](#595-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) - + [5.9.6 根据拼音排序: sortSpell](#596-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) - + [5.9.7 根据笔画数排序: sortStroke](#597-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) - * [5.10 其他 api](#510-%E5%85%B6%E4%BB%96-api) - + [5.10.1 .use()](#5101-use) - + [5.10.2 .type](#5102-type) - + [5.10.3 .check](#5103-check) - + [5.10.4 .version](#5104-version) - + [5.10.5 .plugins](#5105-plugins) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) - [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) @@ -76,24 +77,26 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) - * [6.8 使用实例大全:](#68-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) - + [6.8.0 安装使用](#680-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) - + [6.8.1 cnchar 基础库功能](#681-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.2 cnchar-poly 库功能](#682-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.3 cnchar-order 库功能](#683-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.4 cnchar-trad 库功能](#684-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) - - [6.8.4.1 convert 字体转换](#6841-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) - - [6.8.4.2 spell 和 stroke 方法](#6842-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) - + [6.8.5 cnchar-idiom 库功能](#685-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.6 cnchar-xhy 库功能](#686-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.7 工具方法](#687-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - - [6.8.7.1 spellInfo](#6871-spellinfo) - - [6.8.7.2 isCnChar](#6872-iscnchar) - - [6.8.7.3 transformTone](#6873-transformtone) - - [6.8.7.4 compareSpell](#6874-comparespell) - - [6.8.7.5 compareStroke](#6875-comparestroke) - - [6.8.7.6 sortSpell](#6876-sortspell) - - [6.8.7.7 sortStroke](#6877-sortstroke) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) - [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/poly/package.json b/npm/poly/package.json index 89fc800..9b1ca71 100644 --- a/npm/poly/package.json +++ b/npm/poly/package.json @@ -1,6 +1,6 @@ { "name": "cnchar-poly", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "cnchar.poly.min.js", diff --git a/npm/radical/LICENSE b/npm/radical/LICENSE new file mode 100644 index 0000000..0b08cc7 --- /dev/null +++ b/npm/radical/LICENSE @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) 2017 - present theajack + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/npm/radical/README.md b/npm/radical/README.md new file mode 100644 index 0000000..8b18be5 --- /dev/null +++ b/npm/radical/README.md @@ -0,0 +1,1307 @@ +

+ +

+ +

+ star + Author +

+ +

+ Version + Downloads + Size + License + TopLang + issue + Dependent +

+ +

🚀 功能全面、多端支持的汉字拼音笔画 js 库

+ +**[English](https://github.com/theajack/cnchar/blob/master/helper/README.en.md) | [在线试用/文档](https://theajack.gitee.io/cnchar) | [备用文档地址](https://theajack.com/cnchar) | [更新日志](https://github.com/theajack/cnchar/blob/master/helper/version.md) | [应用:打字游戏](https://theajack.gitee.io/type/) | [反馈错误/缺漏](https://github.com/theajack/cnchar/issues/new) | [Gitee](https://gitee.com/theajack/cnchar)** + +cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒)! + +--- + + +
+ 展开目录 + + + +- [前言](#%E5%89%8D%E8%A8%80) +- [0.快速使用](#0%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8) +- [1.功能](#1%E5%8A%9F%E8%83%BD) +- [2.概览](#2%E6%A6%82%E8%A7%88) +- [3.安装](#3%E5%AE%89%E8%A3%85) + * [3.1 使用 npm 安装](#31-%E4%BD%BF%E7%94%A8-npm-%E5%AE%89%E8%A3%85) + * [3.2 使用 script 引入](#32-%E4%BD%BF%E7%94%A8-script-%E5%BC%95%E5%85%A5) +- [4.使用](#4%E4%BD%BF%E7%94%A8) + * [4.1 webpack浏览器环境(有window对象)](#41-webpack%E6%B5%8F%E8%A7%88%E5%99%A8%E7%8E%AF%E5%A2%83%E6%9C%89window%E5%AF%B9%E8%B1%A1) + * [4.2 nodejs 等非浏览器环境](#42-nodejs-%E7%AD%89%E9%9D%9E%E6%B5%8F%E8%A7%88%E5%99%A8%E7%8E%AF%E5%A2%83) + * [4.3 原生浏览器环境](#43-%E5%8E%9F%E7%94%9F%E6%B5%8F%E8%A7%88%E5%99%A8%E7%8E%AF%E5%A2%83) +- [5.API](#5api) + * [5.1 拼音笔画基础 API: spell & stroke](#51-%E6%8B%BC%E9%9F%B3%E7%AC%94%E7%94%BB%E5%9F%BA%E7%A1%80-api-spell--stroke) + * [5.2 可视化绘制汉字: draw](#52-%E5%8F%AF%E8%A7%86%E5%8C%96%E7%BB%98%E5%88%B6%E6%B1%89%E5%AD%97-draw) + + [5.2.1 使用](#521-%E4%BD%BF%E7%94%A8) + + [5.2.2 参数](#522-%E5%8F%82%E6%95%B0) + + [5.2.3 微信小程序中使用](#523-%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%B8%AD%E4%BD%BF%E7%94%A8) + * [5.3 繁体、简体、火星文互转: convert](#53-%E7%B9%81%E4%BD%93%E7%AE%80%E4%BD%93%E7%81%AB%E6%98%9F%E6%96%87%E4%BA%92%E8%BD%AC-convert) + * [5.4 笔画序列推出原汉字: orderToWord](#54-%E7%AC%94%E7%94%BB%E5%BA%8F%E5%88%97%E6%8E%A8%E5%87%BA%E5%8E%9F%E6%B1%89%E5%AD%97-ordertoword) + * [5.5 通过拼音查询原汉字: spellToWord](#55-%E9%80%9A%E8%BF%87%E6%8B%BC%E9%9F%B3%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-spelltoword) + * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) + * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) + * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) +- [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) + * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) + * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) + * [6.3 orderToWord 参数](#63-ordertoword-%E5%8F%82%E6%95%B0) + * [6.4 spellToWord 参数](#64-spelltoword-%E5%8F%82%E6%95%B0) + * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) + * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) + * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) +- [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) + + + +
+ +--- + +### 前言 + +感谢同学们对于 cnchar 的支持,由于 cnchar 词库来源于网络,虽然经过了本人的修改和扩充,但是还是难免有错误与缺漏之处,希望大家可以将使用中发现的错误与缺漏之处 [反馈](https://github.com/theajack/cnchar/issues/new) 给我(或自行修改提交,经过审查无误过后会合到 cnchar 中) + +[我要反馈错误或缺漏](https://github.com/theajack/cnchar/issues/new) + +关于该文档 + +由于文档较长,做一下简介,请按照需要阅读 + +- 第零章可以帮助开发者快速接入cnchar +- 第一、二章介绍了cnchar的功能及其功能库 +- 第三章介绍了cnchar的安装和使用 +- 第四章介绍了各种不同环境下cnchar的使用差异 +- 第五章详细介绍了cnchar及其功能库的API使用 +- 第六章列举了各个方法的参数和大量的cnchar使用实例 +- 第七章介绍了一些cnchar使用案例 + +### 0.快速使用 + +使用 npm 安装: + +``` +npm i cnchar +``` + +```js +import cnchar from 'cnchar'; +'汉字'.spell(); +'汉字'.stroke(); +``` + +使用 script 标签使用: + +```html + + +``` + +更多详细使用示例 | 参数详细介绍 + +### 1.功能 + +1. 获取 **汉字拼音** ,支持首字母、大小写、数组分割、备选 **多音字** 等功能 +2. 支持 **多音词** +3. 支持 **拼音音调** +4. 获取汉字 **笔画数** 、支持数组分割 +5. 获取汉字 **笔画顺序** 、笔画详细名称 +6. 支持可视化 **绘制汉字笔画** 、多种绘制模式可选 +7. 支持 **简体字** 、 **繁体字** 、 **火星文** 互转 +8. 支持 **查找** 某拼音的所有 **汉字** ,繁体字,多音字 +9. 支持 **查找** 指定笔画数的所有 **汉字** ,繁体字 +10. 支持 **根据笔画顺序查询** 汉字 +11. 支持 **查询拼音的信息**,包含声母、韵母、音调、音调位置的等 +12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 +13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 +14. 支持 **歇后语** 查询功能,支持模糊查询 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 + +### 2.概览 + +考虑到不同的需求,cnchar 的功能被拆分到以下七个库中,方便开发者按需取用: + +| 名称 | 描述 | 功能 | 支持版本 | +| :----------: | :------------------------------: | :--------------------: | :--------------------: | +| cnchar | 主 js 库,其他三个库依赖于这个库 | 含有简体字拼音、多音字、音调、笔画数等功能 | -- | +| cnchar-poly | 多音词库 | 含有识别多音词功能 | -- | +| cnchar-order | 笔画顺序库 | 含有识别笔画顺序、笔画名称、笔画形状等功能 | -- | +| cnchar-trad | 繁体字库 | 支持繁体、火星、简体互转,支持繁体拼音笔画多音字全功能 | -- | +| cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | +| cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | +| cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | + +### 3.安装 + +#### 3.1 使用 npm 安装 + +安装基础库: + +``` +npm i cnchar +``` + +安装附加功能库: + +``` +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical +``` + +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) + +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 + +``` +npm i cnchar-all +``` + +#### 3.2 使用 script 引入 + +```html + + + + + + + +``` + +或使用以下cdn,包含了以上七个库 + +```html + +``` + +### 4.使用 + +#### 4.1 webpack浏览器环境(有window对象) + +npm 安装好几个库之后: + +```js +// 请保证最先引入 cnchar 基础库,其他几个库顺序无所谓 +import cnchar from 'cnchar'; +import 'cnchar-poly'; +import 'cnchar-order'; +import 'cnchar-trad'; +import 'cnchar-draw'; +import 'cnchar-idiom'; +import 'cnchar-xhy'; +import 'cnchar-radical'; +// 插件请按需取用 + +console.log('汉字'.spell()); // prototype 方式调用 +console.log(cnchar.spell('汉字')); // cnchar api 调用 +``` + +浏览器环境下会在 `window` 对象上定义 `cnchar` 对象 + +#### 4.2 nodejs 等非浏览器环境 + +非浏览器环境下需要使用 `cnchar.use()` 方法加载功能库: + +```js +// 请保证最先引入 cnchar 基础库,其他几个库顺序无所谓 +var cnchar = require('cnchar'); +var poly = require('cnchar-poly'); +var order = require('cnchar-order'); +var trad = require('cnchar-trad'); +var idiom = require('cnchar-idiom'); +var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); +// 插件请按需取用 +// 注:cnchar-draw 在非浏览器环境下不可使用 +cnchar.use(poly, order, trad, idiom, xhy, radical); + +console.log('汉字'.spell()); // prototype 方式调用 +console.log(cnchar.spell('汉字')); // cnchar api 调用 +``` + +其他使用方式与浏览器环境一致 + +#### 4.3 原生浏览器环境 + +原生浏览器环境就需要使用 script 标签引入 js 文件: + +```html + + + + + + + + + +``` + +### 5.API + +类型声明:[cnchar.d.ts](https://github.com/theajack/cnchar/blob/master/src/main/index.d.ts) | [cnchar-order.d.ts](https://github.com/theajack/cnchar/blob/master/src/plugin/order/index.d.ts) | [cnchar-trad.d.ts](https://github.com/theajack/cnchar/blob/master/src/plugin/trad/index.d.ts) + +注:该章节仅介绍API用法,更多使用实例请参考第六章 + +#### 5.1 拼音笔画基础 API: spell & stroke + +为了尽可能使 api 使用简单,该库设计了两个主要的非常简洁的 api,并保证调用方式一致: + +```js +// 获取汉字的拼音、多音词、音调等都集成在以下方法上 +cnchar.spell(string[,...args]); +// 或 +string.spell([...args]) + +// 获取汉字的笔画、笔画顺序等都集成在以下方法上 +cnchar.stroke(string[,...args]); +// 或 +string.stroke([...args]) +``` + +该 api 设计一致,`string` 表示要处理的汉字字符串 + +关键在于可选参数的配置,参数配置将在第六章单独介绍 + +#### 5.2 可视化绘制汉字: draw + +类型声明:[cnchar.draw.d.ts](https://github.com/theajack/cnchar/blob/master/src/plugin/draw/index.d.ts) + +`cnchar-draw` 库用于支持在浏览器环境下可视化绘制汉字,所以该库仅在浏览器环境下可用。绘制模式有 normal,animation,stroke,test 四种模式可选。 + +##### 5.2.1 使用 + +使用方式如下: + +```js +cnchar.draw('你好', options); // options 为可选参数, 在5.2.2 种会详细介绍 +``` + +运行结果如下: + +![draw.jpg](https://cdn.jsdelivr.net/gh/theajack/cnchar/docs/assets/readme/draw.jpg) + +该库支持脱离cnchar 独立使用 + +```js +import draw from 'cnchar-draw'; +draw('你好') +``` + +使用cdn引用时,会在window对向上暴露 `CncharDraw` 对象 + +##### 5.2.2 参数 + +draw 的参数比较繁多,首先需要理解的是,draw 分为四种绘制模式: + +1. normal: 常规绘制 +2. animation: 带有绘制动画,支持连续绘制、同时绘制、循环绘制 +3. stroke: 按汉字笔顺单步绘制 +4. test: 测试模式,用户可以在容器内绘制汉字,cnchar-draw会检测是否绘制正确 + +以下是 options 的所有可选参数及描述,使用详情请参考[在线文档](https://theajack.gitee.io/cnchar): + +```ts +declare interface DrawOption { + el?: string | HTMLElement; // 绘制的容器,支持选择器或dom,若是不填,会在body后append一个dom作为容器 + type?: DrawType; // 绘制模式,默认为normal + clear?: boolean; // 绘制前是否清空容器 默认为true + style?: { // 样式类 + backgroundColor?: string, // 默认为#fff + showOutline?: boolean;//: true, + showCharacter?: boolean;//: true, + currentColor?: string;//: '#b44', // 仅在stroke模式下有效 + length?: number;//: 60, + padding?: number;//: 5, // 数值, 默认 20。 画布的汉字和边缘之间的填充 + outlineColor?: string;//: '#ddd', // 十六进制字符, 默认 '#DDD'。 + strokeColor?: string;//: '#555', // 十六进制字符, 默认 '#555'。绘制每个笔划的颜色。 + radicalColor?: string;//: null, // 十六进制字符, 默认 null。 如果存在偏旁部首数据,则在笔划中绘制偏旁部首的颜色。 如果没有设置,激光将绘制与其他笔划相同的颜色。 + strokeFadeDuration?: number; //400 + }, + line?: { // 背景线条类 + lineStraight?: boolean;// : true, + lineCross?: boolean;// : true, + lineWidth?: number;// : 1, + lineColor?: string;// : '#ddd', + lineDash?: boolean;// : true, + border?: boolean;// : true, + borderWidth?: number;// : 1, + borderColor?: string;// : '#ccc', + borderDash?: boolean;// : false, + }, + animation?: { + strokeAnimationSpeed?: number;// : 1, // 数值, 默认 1。 绘制每个笔划的速度必须大于0。增加此数字可以更快地绘制笔划,减少绘制笔划的速度更慢。 + delayBetweenStrokes?: number;// : 1000, // 数值, 默认 1000。 动画进行中每个笔画之间的间隔时间(以毫秒为单位)。 + delayBetweenLoops?: number;// : 200, // 数值, 默认 2000。 循环动画时每个动画循环之间的时间(以毫秒为单位)。 + autoAnimate?: boolean;// : true, + animateComplete?: Function;// : () => {}, + stepByStep?: boolean;// : true, + loopAnimate?: boolean;// : false, + }, + test?: { + strokeHighlightSpeed?: number;// : 20, // 数值, 默认 20。 在测验中给出提示时突出显示每个笔划的速度必须大于0。增加此数字以突出显示更快,减少以突出显示更慢。 + highlightColor?: number;// : '#aaf', // 十六进制字符, 默认 '#AAF'。 用于在测验中突出显示的颜色。 + drawingColor?: number;// : '#333', // 十六进制字符, 默认 '#333'。 测验期间绘制的线条颜色。 + drawingWidth?: number;// : 4, // 数值, 默认 4。 进行测验时绘制的线条宽度。 + showHintAfterMisses?: number;// : 3, // 整数, 默认 3 中风高亮提示之前的未命中数被给予用户。 设置为 false 以禁用。 创建测验时也可以设置此项。 + highlightOnComplete?: number;// : true, // 布尔值, 默认 true。 控制当用户完成绘制整个字符时,测验是否会短暂突出显示字符。 创建测验时也可以设置此项。 + highlightCompleteColor?: number;// : null, // 十六进制字符, 默认 null。 在测验中突出显示字符时使用的颜色。 如果未设置,则将使用highlightColor。 仅当highlightOnComplete为true时才相关。 + onTestStatus?(args: TestStatus):void;// : null, // ({index, status, data})=>{} + } +}; + +``` + +##### 5.2.3 微信小程序中使用 + +该库由 HanziWriter 驱动,目前仅支持在web环境下使用,如需微信小程序使用请参考 [HanziWriter API](https://hanziwriter.org/docs.html#wechat-miniprograms) + +#### 5.3 繁体、简体、火星文互转: convert + +当引入 `cnchar-trad` 之后,cnchar 就具备了繁体、简体、火星文互转功能,使用 `cnchar.convert` 对象上的方法,你就可以使用这个功能 + +自从 v2.0.4 以后,cnchar 保留以下方法可供使用: + +```js +cnchar.convert.simpleToTrad(string); // 简体 => 繁体 +cnchar.convert.simpleToSpark(string); // 简体 => 火星文 +cnchar.convert.tradToSimple(string); // 繁体 => 简体 +cnchar.convert.tradToSpark(string); // 繁体 => 火星文 +cnchar.convert.sparkToSimple(string); // 火星文 => 简体 +cnchar.convert.sparkToTrad(string); // 火星文 => 繁体 + +string.convertSimpleToTrad(); +string.convertSimpleToSpark(); +string.convertTradToSimple(); +string.convertTradToSpark(); +string.convertSparkToSimple(); +string.convertSparkToTrad(); +``` + +#### 5.4 笔画序列推出原汉字: orderToWord + +当引入 `cnchar-order` 功能库(版本 2.0.2 及以上)之后,cnchar 就支持了根据笔画名称序列推出原汉字的功能,使用方式如下: + +```js +cnchar.orderToWord(orderNames[,...args]); +``` + +`orderNames` 是笔画名称序列 + +`args` 是参数列表,可选值有 `['match','matchorder','contain','start','array','simple']`, 使用 `cnchar.type.orderToWord` 可以查看可选值。 参数详细使用方法请参见第六章 orderToWord 参数 + +`orderNames` 可以是空格分隔的笔画名称字符串或笔画名称数组,可用的笔画名称可以通过以下 api 查看 + +```js +var dict = cnchar.orderToWord.orders; // dict 是一个包含所有笔画数的详细信息的json数据 +``` + +笔画详细信息的如下,orderNames 只需要传入笔画名称即可,也就是下面 json 数据的 key 值 + +```js +{ + 卧钩: {shape: "㇃", letter: "y", sameLetterTo: "斜钩"} + 弯钩: {shape: "㇁", letter: "t"} + 捺: {shape: "㇏", letter: "l"} + 提: {shape: "㇀", letter: "i"} + 撇: {shape: "㇓", letter: "s"} + 撇折: {shape: "㇜", letter: "n"} + 撇点: {shape: "㇛", letter: "m"} + 斜钩: {shape: "㇂", letter: "y", sameLetterTo: "卧钩"} + 横: {shape: "㇐", letter: "j"} + 横折: {shape: "㇕", letter: "c"} + 横折弯: {shape: "㇍", letter: "v", sameLetterTo: "横折折"} + 横折折: {shape: "㇅", letter: "v", sameLetterTo: "横折弯"} + 横折折折: {shape: "㇎", letter: "q"} + 横折折折钩: {shape: "㇡", letter: "w", sameLetterTo: "横撇弯钩"} + 横折折撇: {shape: "㇋", letter: "a"} + 横折提: {shape: "㇊", letter: "p"} + 横折钩: {shape: "㇆", letter: "r"} + 横撇: {shape: "㇇", letter: "e", sameLetterTo: "横钩"} + 横撇弯钩: {shape: "㇌", letter: "w", sameLetterTo: "横折折折钩"} + 横斜钩: {shape: "⺄", letter: "o"} + 横钩: {shape: "㇖", letter: "e", sameLetterTo: "横撇"} + 点: {shape: "㇔", letter: "k"} + 竖: {shape: "㇑", letter: "f"} + 竖弯: {shape: "㇄", letter: "b"} + 竖弯钩: {shape: "㇟", letter: "u"} + 竖折折: {shape: "㇞", letter: "x", sameLetterTo: "竖折撇"} + 竖折折钩: {shape: "㇉", letter: "z"} + 竖折撇: {shape: "ㄣ", letter: "x", sameLetterTo: "竖折折"} + 竖提: {shape: "㇙", letter: "h"} + 竖钩: {shape: "㇚", letter: "g"} +} +``` + +注:其中以下五对笔画没有进行区分,使用的是同样的字母表示: +**卧钩 = 斜钩**、**横折弯 = 横折折**、**横折折折钩 = 横撇弯钩**、**横撇 = 横钩**、**竖折折 = 竖折撇** + +以下是一个例子: + +```js +cnchar.orderToWord(['横', '撇', '捺']); +// 等价于 +cnchar.orderToWord('横 撇 捺'); +// 返回 "丈大" +cnchar.orderToWord(['横', '撇', '捺'], 'array'); +// 返回 ["丈","大"] +cnchar.orderToWord(['横', '撇', '捺'], 'start'); +// 返回 "丈大太犬夯夸夺夼奁奄奈奋奔态奎耷套奢瓠鹩奪奮遼" +cnchar.orderToWord(['横', '撇', '捺'], 'start', 'simple'); +// 返回 "丈大太犬夯夸夺夼奁奄奈奋奔态奎耷套奢瓠鹩" +``` + +如果输入的笔画不在 `cnchar.orderToWord.orders` 内,则该方法会打印一个错误提示哪些笔画有误,并返回一个空数组。 + +#### 5.5 通过拼音查询原汉字: spellToWord + +`spellToWord` 方法用于根据拼音查询符合要求的汉字,用法如下: + +```js +cnchar.spellToWord(spell[,...args]); +``` + +例子: + +```js +cnchar.spellToWord('shàng'); // 返回 '上尚绱鞝' +cnchar.spellToWord('shàng', 'alltone'); // 返回 '上伤汤尚垧殇晌商绱觞赏墒熵裳傷湯殤鞝觴賞' +cnchar.spellToWord('shang4', 'alltone', 'trad'); // 返回 '傷湯殤鞝觴賞' +cnchar.spellToWord('lv2', 'simple'); // 返回 '驴闾榈' +``` + +注: + +spell 表示拼音,可以使用音调字母或音调数标方式: +例:`shàng 等价于 shang4` + +ü 可以使用 v 表示,例:`lü 等价于 lv` + +#### 5.6 通过笔画数查询原汉字: strokeToWord + +`strokeToWord` 方法用于根据笔画数查询符合要求的汉字,用法如下: + +```js +cnchar.strokeToWord(strokeCount[,...args]); +``` + +例子: + +```js +cnchar.strokeToWord(25); // 返回 '鬣馕囔戆攮纛饞躥顱籮蠻廳灣鑲鑰' +cnchar.strokeToWord(25, 'simple'); // 返回 '鬣馕囔戆攮纛' +cnchar.strokeToWord(1, 'array'); // 返回 ['一', '乙'] +``` + +#### 5.7 成语功能 + +cnchar在2.2.0加入了成语功能,启用该功能需要安装 `cnchar-idiom` 功能库,该库可以独立于cnchar主库运行 + +使用方式如下: + +```ts +cnchar.idiom(text:string, ...idiomArgs: Array):Array; +``` + +看一个具体例子 + +```js +// 根据汉字查询成语,末尾的空格可以省略 +cnchar.idiom(['五', '', '十', '']); // ['五风十雨', '五光十色'] +// 根据笔画数查询成语,0表示匹配任意笔画,末尾的0可以省略 +cnchar.idiom([4, 6, 2, 0], 'stroke'); // ["不当人子", ... ] +// 根据拼音查询成语 +cnchar.idiom('shang', 'spell'); // ["伤风败化", "伤风败俗", ...] +// 带音调 +cnchar.idiom('shang4', 'spell', 'tone'); // ["上兵伐谋", "上不着天,下不着地", ... ] +``` + +使用cdn引用时,会在window对向上暴露 `CncharIdiom` 对象 + +#### 5.8 歇后语功能 + +cnchar在2.2.0加入了歇后语功能,启用该功能需要安装 `cnchar-xhy` 功能库,该库可以独立于cnchar主库运行 + +使用方式如下: + +```ts +cnchar.xhy(text:string, ...xhyArgs: Array):Array; +``` + +看一个具体例子 + +```js +// 精确查询 +cnchar.xhy('大水冲了龙王庙'); // ['大水冲了龙王庙-自家人不识自家人', '大水冲了龙王庙-一家人不认一家人'], +// 模糊查询 +cnchar.xhy('大水', 'fuzzy'); // ['江河里长大水-泥沙俱下', '江河发大水-后浪推前浪', ... ] +// 只返回答案结果 +cnchar.xhy('大水', 'fuzzy', 'answer'); // ['泥沙俱下', '后浪推前浪', ... ] +// 根据歇后语后一句查询 +cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second'); // ['醉汉过铁索桥', '扶着醉汉过破桥'] +``` + +使用cdn引用时,会在window对向上暴露 `CncharXHY` 对象 + +#### 5.9 偏旁部首功能 + +cnchar在 2.2.5 加入了偏旁部首功能,启用该功能需要安装 `cnchar-radical` 功能库,该库可以独立于cnchar主库运行 + +感谢 `kewell-tsao` 提供的 pr + +使用方式如下: + +```ts +cnchar.radical(text:string | Array, ...radicalArgs: Array): string | Array; +``` + +看一个具体例子 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +// 返回数组 +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +// 传入数组会默认返回数组 +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +使用cdn引用时,会在window对向上暴露 `CncharRadical` 对象 + +#### 5.10 汉字、拼音工具方法 + +cnchar 将库内部使用的一些操作拼音和汉字的方法整理暴露出来,方便开发者便捷高效的操作拼音和汉字 + +##### 5.10.1 查询拼音详细信息: spellInfo + +`spellInfo` 方法用于查询拼音的详细信息,用法如下: + +```js +cnchar.spellInfo(spell); +``` + +例子: + +```js +cnchar.spellInfo('Shàng'); +/* +// 返回值与含义如下 +{ + spell: 'shang', // 无音调拼音 + initial: 'sh', // 声母 + final: 'ang', // 韵母 + tone: 4, // 音调 + index: 3 // 音调位置 +}, +*/ +``` + +除此之外,`spellInfo` 上含有 `initials` 和 `tones` 两个属性,分别表示,所有可用的声母和音调: + +```js +cnchar.spellInfo.initials; +// ['b', 'p', 'm', 'f', 'd', 't', 'n', 'l', 'g', 'k', 'h', 'j', 'q', 'x', 'zh', 'ch', 'sh', 'r', 'z', 'c', 's', 'y', 'w'] +cnchar.spellInfo.tones; +// ['ā', 'á', 'ǎ', 'à', 'ō', 'ó', 'ǒ', 'ò', 'ē', 'é', 'ě', 'è', 'ī', 'í', 'ǐ', 'ì', 'ū', 'ú', 'ǔ', 'ù', 'ǖ', 'ǘ', 'ǚ', 'ǜ', '*', 'ń', 'ň', 'ǹ'] +// n 的一声使用 * 代替 +``` + +##### 5.10.2 拼音音调操作: transformTone + +`transformTone` 方法用于将有音调拼音转换为无音调拼音,且可以获取音调位置和声调 + +使用方式如下: + +```ts +cnchar.transformTone(spell: string, tone?: boolean, type?: 'low' | 'up'); +/* 返回值 +{ + spell: string; // 转换后的拼音 + tone: toneType; // 声调 + index: number; // 音调位置 + isTrans: boolean; // 是否是经过转换的比如 lv2 -> lǘ +} +*/ +``` + +tone 为可选参数,表示返回值spell是否需要带上声调,默认为 false + +type 为可选参数,表示返回值spell设置大小写,默认为 'low' + +transformTone spell参数 支持使用 v 代替 ü,支持使用末尾带数字表示声调,比如 `lv 等价于 lü` `shang4 等价于 shàng` + +##### 5.10.3 是否是汉字: isCnChar + +`isCnChar` 方法用于判断一个字符是否是汉字 + +```ts +cnchar.isCnChar(word: string): boolean; +``` + +##### 5.10.4 比较拼音(汉字)大小: compareSpell + +`compareSpell` 方法用于按照拼音比较拼音或汉字的大小,可用于通讯录姓名拼音排序等场景 + +该方法支持按照拼音和声调比较,如需排序可以参考 `sortSpell` 方法 + +```ts +cnchar.compareSpell(spell1: string, spell2: string, tone?: boolean); +``` + +tone参数表示是否需要按照音调比较,默认为false + +该方法返回一个字符串,'more', 'less', 'even' 分别表示 spell1 大于、小于、等于 spell2 + +例 + +```js +cnchar.compareSpell('ao', 'ai') // 返回 'more' 因为 o 排在 i 之后 +cnchar.compareSpell('奥', 'ai') // 返回 'more' +``` + +##### 5.10.5 比较汉字笔画数大小: compareStroke + +`compareStroke` 方法用于按照笔画数比较汉字大小,可用于按照姓名首个汉字笔画排序等场景,排序可以参考 `sortStroke` 方法 + +```ts +cnchar.compareStroke(stroke1: string, stroke2: string); +``` + +该方法支持输入汉字或数字,汉字可以输入多个 + +该方法返回一个字符串,'more', 'less', 'even' 分别表示 stroke1 大于、小于、等于 stroke2 + +例子: + +```js +cnchar.compareStroke('你', '好') // 返回 'more' +cnchar.compareStroke(20, '好') // 返回 'more' +cnchar.compareStroke('一个', '好') // 返回 'less' +``` + +##### 5.10.6 根据拼音排序: sortSpell + +`sortSpell` 方法用于按照拼音排序汉字或拼音,支持输入数组或字符串,支持按照声调排序、支持倒序 + +```ts +cnchar.sortSpell(spells:Array | string, ...args?: Array<'tone'|'desc'>): Array | string; +``` + +spells参数可以是数组或字符串 + +当为数组时,数组元素可以时汉字或拼音,返回的是数组 + +当为字符串时,字符串必须全部是汉字,返回的是字符串 + +该方法可选参数有两个,'tone' 表示按照音调排序,'desc' 表示倒序,默认不区分声调且升序。请看一些例子 + +```js +cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] +cnchar.sortSpell('你好吗') // '好吗你' +cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' +``` + +##### 5.10.7 根据笔画数排序: sortStroke + +`sortStroke` 方法用于按照笔画数排序汉字 + +```ts +cnchar.sortStroke(strokes:Array | string, desc?: 'desc'): Array | string; +``` + +strokes参数可以是数组或字符串 + +当为数组时,数组元素可以时汉字或数字,返回的是数组 + +当为字符串时,字符串必须全部是汉字,返回的是字符串 + +该方法有一个可选参数,'desc' 表示倒序,默认升序。请看一些例子 + +```js +cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] +cnchar.sortStroke(['一', '三', 2]) // ['一', 2, '三'], +cnchar.sortStroke('一三二', 'desc') // '三二一' +``` + +#### 5.11 其他 api + +##### 5.11.1 .use() + +这个 api 的功能是显式启用 `poly`、`order`、`trad` 三个功能库 + +```js +cnchar.use(...libs); +``` + +这个启用在非浏览器环境(比如 nodejs 等)中是必须的,使用如下: + +```js +// 请保证最先引入 cnchar 基础库,其他几个库顺序无所谓 +var cnchar = require('cnchar'); +var poly = require('cnchar-poly'); +var order = require('cnchar-order'); +var trad = require('cnchar-trad'); +cnchar.use(poly, order, trad); // 参数顺序无关,三个参数可以任意选择 +``` + +在浏览器环境中则无需调用: + +```js +// 请保证最先引入 cnchar 基础库,其他几个库顺序无所谓 +import cnchar from 'cnchar'; +import 'cnchar-poly'; +import 'cnchar-order'; +import 'cnchar-trad'; +``` + +##### 5.11.2 .type + +type 对象用户获取当前可用的 `spell` 、 `stroke` 、 `orderToWord` 、`spellToWord`、`strokeToWord`、`idiom`、 `xhy`、`radical` 参数类型: + +```js +var spellArg = cnchar.type.spell; +var strokeArg = cnchar.type.stroke; +var orderToWordArg = cnchar.type.orderToWord; +var spellToWordArg = cnchar.type.spellToWord; +var strokeToWordArg = cnchar.type.strokeToWord; +var idiomArg = cnchar.type.idiom; +var xhyArg = cnchar.type.xhy; +var radicalArg = cnchar.type.radical; +``` + +spellArg 最多可用值: `['array', 'low', 'up', 'first', 'poly', 'tone', 'simple']` + +strokeArg 最多可用值:`['letter', 'shape', 'count', 'name', 'detail', 'array', 'order', 'simple']` + +orderToWordArg 最多可用值: `['match','matchorder','contain','start','array','simple']` + +spellToWordArg 最多可用值: `['simple','trad','poly','alltone','array']` + +strokeToWordArg 最多可用值: `['simple','trad','array']` + +idiomArg 最多可用值: `['char','stroke','spell','tone']` + +xhyArg 最多可用值: `['fuzzy','answer','second']` + +radicalArg 最多可用值: `['array']` + +以上值皆为 json + +具体用法第六章讲到 + +##### 5.11.3 .check + +该值是一个 布尔类型,用于控制是否开启参数校验,默认值为 true + +参数校验能够对 `spell` 和 `stroke` 传入的参数进行检查,在控制台显示 `无效·`,`忽略`和`冗余`的参数 + +```js +cnchar.check = false; // 关闭参数校验 +``` + +##### 5.11.4 .version + +获取当前版本: + +```js +var version = cnchar.version; // string 类型 +``` + +##### 5.11.5 .plugins + +当前使用的功能库列表,最多的情况为 `["order", "trad", "poly"]` + +```js +var plugins = cnchar.plugins; // array 类型 +``` + +### 6.spell stroke 参数 + +#### 6.1 spell 参数 + +参数调用如下,所有 arg 参数都是可选的 + +```js +cnchar.spell(string,arg1,arg2,...); +string.spell(arg1,arg2,...) +``` + +arg 参数信息如下: + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :----: | :----------------------: | :------: | :---------: | :-------: | +| array | 返回数组 | 否 | -- | -- | +| first | 返回拼音首字母 | 否 | -- | -- | +| up | 将结果全部大写 | 否 | -- | -- | +| low | 将结果全部小写 | 否 | -- | 会被 up 参数覆盖 | +| poly | 使用候选多音字 | 否 | -- | -- | +| tone | 启用音调 | 否 | -- | -- | +| simple | 是否禁用繁体字的拼音功能 | 否 | cnchar-trad | 使用 cnchar-trad 之后,默认对繁体字拼音进行转换,该参数用于禁用繁体字拼音 | + +#### 6.2 stroke 参数 + +参数调用如下,所有 arg 参数都是可选的 + +```js +cnchar.stroke(string,arg1,arg2,...); +string.stroke(arg1,arg2,...); +``` + +arg 参数信息如下: + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :----: | :---------------: | :------: | :----------: | :-----------: | +| array | 返回数组 | 否 | -- | 使用 cnchar-order 且启用 order 参数后该参数被忽略 | +| order | 启用笔画顺序 | 否 | cnchar-order | -- | +| letter | 使用笔画顺序字母序列 | 是 | cnchar-order | 当启用 order 后,该值是默认值 | +| detail | 使用笔画顺序详情作为返回值,每个汉字对应一个 json | 否 | cnchar-order | 优先级小于 letter | +| shape | 使用笔画形状作为返回值 | 否 | cnchar-order | 优先级小于 detail | +| name | 使用笔画名称作为返回值 | 否 | cnchar-order | 优先级小于 shape | +| count | 使用笔画数作为返回值 | 否 | cnchar-poly | 优先级小于 name | +| simple | 是否禁用繁体字的笔画功能 | 否 | cnchar-trad | 使用 cnchar-trad 之后,默认对繁体字启用笔画功能,该参数用于禁用繁体字笔画功能 | + +#### 6.3 orderToWord 参数 + +参数调用如下,所有 arg 参数都是可选的 + +```js +cnchar.orderToWord(orders,arg1,arg2,...); +``` + +arg 参数信息如下: + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :---------: | :--------: | :------: | :---------: | :---: | +| match | 匹配含有笔序中所有笔画的汉字 | 否 | -- | -- | +| match-order | 匹配含有笔序中所有笔画的汉字前先后顺序一致 | 否 | -- | -- | +| contain | 匹配含有该笔序的汉字 | 否 | -- | -- | +| start | 匹配所有以该笔序开头的汉字 | 否 | -- | -- | +| array | 返回符合条件的数组,默认返回的是字符串 | 否 | -- | -- | +| simple | 禁用繁体字 | 否 | cnchar-trad | 该参数仅在引入了 `cnchar-trad` 后有效 | + +关于匹配参数,优先级为 **match > match-order > contain > start > 默认** + +不含有匹配参数时表示使用全匹配,即汉字笔画数与传入的 orders 完全一致 + +#### 6.4 spellToWord 参数 + +参数调用如下,所有 arg 参数都是可选的 + +```js +cnchar.spellToWord(spell,arg1,arg2,...); +``` + +spell 表示拼音,可以使用音调字母或音调数标方式: +例:`shàng 等价于 shang4` + +ü 可以使用 v 表示,例:`lü 等价于 lv` + +arg 参数信息如下: + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :-----: | :----: | :------: | :---: | :---: | +| simple | 仅匹配简体字 | 否 | -- | -- | +| trad | 仅匹配繁体字 | 否 | cnchar-trad | 该参数仅在引入了 `cnchar-trad` 后有效 | +| poly | 仅匹配多音字 | 否 | -- | -- | +| alltone | 匹配该拼音所有音调的汉字 | 否 | -- | 没有音调的拼音表示轻声 | +| array | 返回符合条件的数组,默认返回的是字符串 | 否 | -- | -- | + +注:`simple`与`trad`参数若是都不存在,则当引入`cnchar-trad`时会同时匹配繁简体,没有引入`cnchar-trad`时则只匹配简体 + + +#### 6.5 strokeToWord 参数 + +参数调用如下,count表示笔画数,所有 arg 参数都是可选的 + +```js +cnchar.strokeToWord(count,arg1,arg2,...); +``` + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :-----: | :----: | :------: | :---: | :---: | +| simple | 仅匹配简体字 | 否 | -- | -- | +| trad | 仅匹配繁体字 | 否 | cnchar-trad | 该参数仅在引入了 `cnchar-trad` 后有效 | +| array | 返回符合条件的数组,默认返回的是字符串 | 否 | -- | -- | + +注:`simple`与`trad`参数若是都不存在,则当引入`cnchar-trad`时会同时匹配繁简体,没有引入`cnchar-trad`时则只匹配简体 + +#### 6.6 idiom 参数 + +参数调用如下,value表示查询对象,可以试拼音汉字笔画数,所有 arg 参数都是可选的 + +```js +cnchar.idiom(value,arg1,arg2,...); +``` + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :-----: | :----: | :------: | :---: | :---: | +| char | 根据汉字查询成语 | 是 | -- | 默认值无需调用 | +| stroke | 根据笔画数查询成语 | 否 | -- | 优先级高于char | +| spell | 根据拼音查询成语 | 否 | -- | 优先级高于stroke | +| tone | 启用拼音音调查询 | 否 | -- | 仅在spell模式下生效 | + +注:优先级 `spell` > `stroke` > `char` + +#### 6.7 xhy 参数 + +参数调用如下,value表示歇后语查询对象,可以是歇后语的第一句或第二句,所有 arg 参数都是可选的 + +```js +cnchar.xhy(value,arg1,arg2,...); +``` + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :-----: | :----: | :------: | :---: | :---: | +| fuzzy | 是否支持模糊查询 | 否 | -- | 是否包含输入的字符串 | +| answer | 是否只输出答案 | 否 | -- | 默认是输出整句歇后语 | +| second | 是否是根据歇后语后一句查询 | 否 | -- | -- | + +#### 6.8 radical 参数 + +参数调用如下,value表示需要查询偏旁的汉字,可以是字符串或数组 + +```js +cnchar.radical(value,arg1,arg2,...); +``` + +| 参数 | 作用 | 是否默认 | 依赖库 | 备注 | +| :-----: | :----: | :------: | :---: | :---: | +| array | 是否返回数组 | 否 | -- | 当传入为数组时默认返回数组 | + +#### 6.9 使用实例大全: + +##### 6.9.0 安装使用 + +npm 方式 + +``` +npm i cnchar +``` + +```js +import cnchar from 'cnchar'; +// do something +``` + +script 标签引用 方式 + +```html + + +``` + +##### 6.9.1 cnchar 基础库功能 + +```js +//spell 功能 +'测试'.spell(); // 返回 'CeShi' +'测试'.spell('up'); // 返回 'CESHI' +'测试'.spell('low'); // 返回 'ceshi' +'测试'.spell('first'); // 返回 'CS' +'测试'.spell('first', 'low'); // 返回 'cs' +'测试'.spell('array'); // 返回 ['Ce','Shi'] +'测试'.spell('array', 'first', 'low'); // 返回 ['c','s'] +'测试'.spell('tone'); // 返回 'CèShì' +'长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' + +//stroke 功能 +'测'.stroke(); // 返回 9 +'测试'.stroke(); // 返回 17 +'测试'.stroke('array'); // 返回 [9,8] + +//spellToWord 功能 +cnchar.spellToWord('shàng'); // 返回 "上尚绱" +cnchar.spellToWord('lv2'); // 返回 "驴闾榈" + +//strokeToWord 功能 +cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵刀刁力勹" +``` + +备注: + +1. string.spell(...arg)方法等价于 `cnchar.spell(string,...args)` +2. string.stroke(...arg)方法等价于 `cnchar.stroke(string,...args)` +3. spell 方法 非中文字符会返回原字符 +4. stroke 方法 非中文字符会笔画数会计为 0 +5. stroke 方法 order 模式 非中文字符会返回 undefined + +##### 6.9.2 cnchar-poly 库功能 + +该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 + +```js +'长大了'.spell(); // 返回 'ZhangDaLe' +'长大了'.spell('array'); // 返回 ["Zhang", "Da", "Le"] +'长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' +``` + +##### 6.9.3 cnchar-order 库功能 + +该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 + +```js +'一个'.stroke('order'); // 返回 ["j","slf"] 需要显式使用 order 参数 默认返回笔画数字母序列 +'一个'.stroke('order', 'detail'); // +/* 返回详细笔画信息: +[ + [{ + "shape": "㇐", + "type": "平笔", + "foldCount": "0", + "name": "横" + }],[{ + "shape": "㇓", + "type": "平笔", + "foldCount": "0", + "name": "撇" + },{ + "shape": "㇏", + "type": "平笔", + "foldCount": "0", + "name": "捺" + },{ + "shape": "㇑", + "type": "平笔", + "foldCount": "0", + "name": "竖" + }] +]*/ +'一个'.stroke('order', 'shape'); // 返回 [["㇐"],["㇓","㇏","㇑"]] +'一个'.stroke('order', 'name'); // 返回 [["横"],["撇", "捺", "竖"]] +'一个'.stroke('order', 'count'); // 返回 [1, 3] +``` + +根据笔画名称序列推出原汉字 + +```js +var orders = cnchar.orderToWord.orders; //查看支持的笔画名称 +cnchar.orderToWord(['横', '撇', '捺']); +// 返回 "丈大" +cnchar.orderToWord(['横', '撇', '捺'], 'array'); +// 返回 ["丈","大"] +cnchar.orderToWord(['横', '撇', '捺'], 'start'); +// 返回 "丈大太犬夯夸夺夼奁奄奈奋奔态奎耷套奢瓠鹩奪奮遼" +cnchar.orderToWord(['横', '撇', '捺'], 'start', 'simple'); +// 返回 "丈大太犬夯夸夺夼奁奄奈奋奔态奎耷套奢瓠鹩" +cnchar.orderToWord(['横', '撇', '捺'], 'match'); +// 返回 "丈大仄兮友天太夫夭尺攵文木犬长丛仗仝叭..." // 省略后面的 +cnchar.orderToWord(['横', '撇', '捺'], 'matchorder'); +// 返回 "丈大仄友天太夫夭尺攵文木犬仗叭史央夯失..." // 省略后面的 +cnchar.orderToWord(['横', '撇', '捺'], 'contain'); +// 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 +``` + +##### 6.9.4 cnchar-trad 库功能 + +该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 + +###### 6.9.4.1 convert 字体转换 + +```js +'一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad +cnchar.convert.simpleToTrad('一个人'); + +'一个人'.convertSimpleToSpark(); // 返回 "①个亾" 等价于 cnchar.convert.simpleToSpark +cnchar.convert.simpleToSpark('一个人'); + +'壹個人'.convertTradToSimple(); // 返回 "一个人" 等价于 cnchar.convert.tradToSimple +cnchar.convert.tradToSimple('壹個人'); + +'壹個人'.convertTradToSpark(); // 返回 "①个亾" 等价于 cnchar.convert.tradToSpark +cnchar.convert.tradToSpark('壹個人'); + +'①个亾'.convertSparkToSimple(); // 返回 "一个人" 等价于 cnchar.convert.sparkToSimple +cnchar.convert.sparkToSimple('①个亾'); + +'①个亾'.convertSparkToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.sparkToTrad +cnchar.convert.sparkToTrad('①个亾'); +``` + +###### 6.9.4.2 spell 和 stroke 方法 + +该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: + +```js +//spell 功能 +'長大'.spell(); // 返回 'ZhangDa' +'長大'.spell('simple'); // 返回 '長Da' // 禁用繁体字拼音功能 + +//stroke 功能 +'長大'.stroke('array'); // 返回 [8, 3] +'長大'.stroke('array', 'simple'); // 返回 [0, 3] // 禁用繁体字笔画功能 +'長大'.stroke('order', 'shape'); // 返回 [["㇐","㇑","㇐","㇐","㇐","㇙","㇓","㇏"],["㇐","㇓","㇏"]] +'長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] +``` + +##### 6.9.5 cnchar-idiom 库功能 + +该库为cnchar扩展了成语功能 + +```js +cnchar.idiom(['五', '', '十', '']) // ['五风十雨', '五光十色'] +cnchar.idiom([4, 6, 2, 6], 'stroke') // ['五光十色'] +cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] +cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] +``` + +##### 6.9.6 cnchar-xhy 库功能 + +该库为cnchar扩展了歇后语功能 + +```js +cnchar.xhy('大水冲了龙王庙') // ['大水冲了龙王庙-自家人不识自家人', '大水冲了龙王庙-一家人不认一家人'] +cnchar.xhy('大水', 'fuzzy') // ['江河里长大水-泥沙俱下', '江河发大水-后浪推前浪', ... ] +cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', ... ] +cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] +``` + +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 + +cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 + +###### 6.9.8.1 spellInfo + +```js +cnchar.spellInfo('shàng'); +// 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} +``` + +###### 6.9.8.2 isCnChar + +```js +cnchar.isCnChar('a') // false +cnchar.isCnChar('1') // false +cnchar.isCnChar('?') // false +cnchar.isCnChar('国') // true +cnchar.isCnChar('國') // true +``` + +###### 6.9.8.3 transformTone + +```js +cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} +cnchar.transformTone('lv2', true) // {spell: 'lǘ', tone: 2, index: 2, isTrans: true} +cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isTrans: true} +cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} +``` + +###### 6.9.8.4 compareSpell + +```js +cnchar.compareSpell('ao', 'ai') // 'more' +cnchar.compareSpell('ai', 'ai') // 'even' +cnchar.compareSpell('pín', 'pǐn', true) // 'less' +cnchar.compareSpell('pin2', 'pǐn', true) // 'less' +cnchar.compareSpell('频', 'pǐn', true) // 'less' +cnchar.compareSpell('品', '频', true) // 'more' +cnchar.compareSpell('贫', '频', true) // 'even' +``` + +###### 6.9.8.5 compareStroke + +```js +cnchar.compareStroke('你', '好') // 'more' +cnchar.compareStroke('你', '苏') // 'even' +cnchar.compareStroke('好', '苏') // 'less' +cnchar.compareStroke('一个', '好') // 'less' +cnchar.compareStroke('你', 14) // 'less' +``` + +###### 6.9.8.6 sortSpell + +```js +cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] +cnchar.sortSpell('你好吗') // '好吗你' +cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone') // ['爱', '拼', '频', '品'] +cnchar.sortSpell(['拼', '品', 'pin2', 'ai'], 'tone') // ['ai', '拼', 'pin2', '品'] +cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', '拼', '爱'] +cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' +``` + +###### 6.9.8.7 sortStroke + +```js +cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] +cnchar.sortStroke('一三二') // '一二三' +cnchar.sortStroke(['一', '三', 2]) // ['一', 2, '三'] +cnchar.sortStroke(['一', '三', '二'], 'desc') // ['三', '二', '一'] +``` + +### 7.应用例子 + +[汉字打字游戏](https://www.theajack.com/type/) + +**致谢** + +`cnchar-draw` 库功能基于 [hanzi-writer](https://github.com/chanind/hanzi-writer), 特此表示感谢! diff --git a/npm/radical/cnchar.radical.min.js b/npm/radical/cnchar.radical.min.js index b975927..122e08b 100644 --- a/npm/radical/cnchar.radical.min.js +++ b/npm/radical/cnchar.radical.min.js @@ -1 +1 @@ -!function(n){var e={};function t(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return n[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=n,t.c=e,t.d=function(n,e,o){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:o})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var r in n)t.d(o,r,function(e){return n[e]}.bind(null,r));return o},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){function o(n){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}var r=t(1);function u(n){-1===n.plugins.indexOf("radical")&&(n.plugins.push("radical"),n.radical=f)}function i(n){"object"===("undefined"==typeof window?"undefined":o(window))&&window.CnChar?u(window.CnChar):void 0!==n&&u(n)}function f(n){return r[n]}i(),n.exports=i},function(n){n.exports=JSON.parse('{"嗄":"口","吖":"口","阿":"阝","啊":"口","锕":"钅","騣":"駌","捱":"扌","皑":"白","癌":"疒","嗳":"口","艾":"艹","爱":"爫","砹":"石","隘":"阝","嗌":"口","嫒":"女","碍":"石","叆":"厶","暧":"日","瑷":"王","僾":"亻","餲":"飠","薭":"艹","矮":"矢","蔼":"艹","霭":"雨","哎":"口","哀":"口","唉":"口","埃":"土","挨":"扌","锿":"钅","歡":"欠","犴":"犭","岸":"山","按":"扌","案":"木","胺":"月","暗":"日","黯":"黑","垵":"土","俺":"亻","唵":"口","埯":"土","铵":"钅","揞":"扌","晻":"日","啽":"口","鹌":"鸟","鞍":"革","闇":"閠","鮟":"魚","安":"宀","桉":"木","氨":"气","庵":"广","谙":"讠","媕":"女","膚":"月","眝":"皿","昂":"日","枊":"木","盎":"皿","醠":"酉","肮":"月","敖":"攵","嗷":"口","嶅":"山","廒":"广","獒":"犬","遨":"辶","熬":"灬","翱":"羽","聱":"耳","螯":"虫","謷":"言","鳌":"鱼","鏖":"金","環":"王","妔":"大","坳":"土","岙":"山","傲":"亻","奥":"大","骜":"马","墺":"土","澳":"氵","懊":"忄","鏊":"金","芺":"艹","袄":"衤","媪":"女","凹":"凵","垇":"土","爊":"火","跋":"足","魃":"鬼","鼥":"鼠","拔":"扌","茇":"艹","胈":"月","菝":"艹","坝":"土","弝":"弓","爸":"父","罢":"罒","鲅":"鱼","霸":"雨","灞":"氵","鲌":"鱼","把":"扌","钯":"钅","靶":"革","豝":"豕","鲃":"鱼","八":"八","巴":"巳","叭":"口","扒":"扌","朳":"木","吧":"口","岜":"山","芭":"艹","疤":"疒","捌":"扌","笆":"竹","粑":"米","奲":"大","白":"白","败":"贝","拜":"手","稗":"禾","百":"白","佰":"亻","柏":"木","栢":"木","捭":"扌","摆":"扌","掰":"手","办":"力","半":"十","伴":"亻","扮":"扌","姅":"女","拌":"扌","绊":"纟","瓣":"瓜","湴":"氵","蝯":"虫","阪":"阝","坂":"土","板":"木","版":"片","钣":"钅","舨":"舟","魬":"魚","扳":"扌","攽":"攵","班":"王","般":"舟","颁":"页","斑":"文","搬":"扌","斒":"文","瘢":"疒","癍":"疒","墆":"土","蚌":"虫","傍":"亻","棒":"木","棓":"木","谤":"讠","稖":"禾","蒡":"艹","镑":"钅","绑":"纟","榜":"木","膀":"月","邦":"阝","帮":"巾","梆":"木","浜":"氵","雹":"雨","薄":"艹","菢":"艹","鲍":"鱼","报":"扌","抱":"扌","豹":"豸","暴":"日","虣":"虍","爆":"火","瀑":"氵","宝":"宀","饱":"饣","保":"亻","鸨":"鸟","堡":"土","葆":"艹","褓":"衤","勹":"勹","包":"勹","孢":"子","苞":"艹","胞":"月","煲":"火","龅":"齿","褒":"衣","剥":"刂","枹":"木","贝":"贝","狈":"犭","邶":"阝","备":"夂","鞴":"革","鐾":"金","背":"月","钡":"钅","倍":"亻","悖":"忄","被":"衤","偝":"亻","惫":"心","焙":"火","琲":"王","辈":"车","碚":"石","蓓":"艹","褙":"衤","骳":"骨","哱":"口","糽":"米","北":"匕","碑":"石","鹎":"鸟","陂":"阝","卑":"十","杯":"木","悲":"忄","椑":"木","呗":"口","坌":"土","笨":"竹","本":"木","苯":"艹","畚":"田","贲":"贝","倴":"亻","锛":"钅","奔":"大","甭":"用","泵":"水","迸":"辶","甏":"瓦","蹦":"足","間":"钅","萫":"艹","琫":"王","崩":"山","绷":"纟","絣":"糹","伻":"亻","祊":"礻","嘣":"口","搒":"扌","柲":"木","荸":"艹","鼻":"鼻","币":"巾","必":"心","毕":"比","闭":"门","庇":"广","诐":"讠","邲":"阝","畀":"田","苾":"艹","哔":"口","毖":"比","珌":"王","荜":"艹","陛":"阝","毙":"比","狴":"犭","铋":"钅","婢":"女","庳":"广","敝":"攵","梐":"木","弊":"廾","碧":"石","箅":"竹","萆":"艹","堛":"土","弼":"弓","愊":"忄","愎":"忄","皕":"白","筚":"竹","滗":"氵","煏":"火","痹":"疒","腷":"月","蓖":"艹","裨":"衤","跸":"足","閟":"閠","蔽":"艹","駜":"駌","髲":"髟","壁":"土","嬖":"女","篦":"竹","薜":"艹","觱":"角","避":"辶","濞":"氵","臂":"月","鞞":"革","髀":"骨","奰":"大","璧":"玉","饆":"飠","襞":"衣","襣":"衤","鷩":"鴅","躭":"足","鮥":"魚","馿":"香","趐":"贝","箄":"竹","舭":"舟","鄙":"阝","匕":"匕","比":"比","佊":"亻","吡":"口","妣":"女","沘":"氵","彼":"彳","秕":"禾","俾":"亻","笔":"竹","皀":"白","屄":"尸","偪":"亻","逼":"辶","鲾":"鱼","鎞":"釒","沵":"氵","便":"亻","变":"又","卞":"卜","弁":"廾","忭":"忄","抃":"扌","汴":"氵","苄":"艹","昪":"日","缏":"纟","遍":"辶","艑":"舟","辨":"辛","辩":"辛","辫":"辛","藊":"艹","贬":"贝","扁":"户","窆":"穴","匾":"匚","惼":"忄","碥":"石","褊":"衤","穐":"禾","搊":"扌","编":"纟","萹":"艹","煸":"火","箯":"竹","蝙":"虫","鳊":"鱼","鞭":"革","边":"辶","砭":"石","笾":"竹","俵":"亻","鳔":"鱼","檦":"木","表":"衣","婊":"女","裱":"衤","襢":"衤","穮":"禾","镳":"钅","摽":"扌","幖":"巾","滮":"氵","骠":"马","熛":"火","膘":"月","麃":"鹿","瘭":"疒","镖":"钅","飙":"风","飚":"风","瀌":"氵","彪":"彡","标":"木","飑":"风","髟":"髟","藨":"艹","獃":"犬","髏":"马","别":"刂","蹩":"足","瘪":"疒","憋":"心","鳖":"鱼","摈":"扌","殡":"歹","膑":"月","髌":"骨","鬓":"髟","镔":"钅","濒":"氵","豳":"豕","蠙":"虫","邠":"阝","宾":"宀","彬":"彡","傧":"亻","斌":"文","滨":"氵","缤":"纟","槟":"木","玢":"王","摒":"扌","并":"干","病":"疒","丙":"一","邴":"阝","秉":"禾","柄":"木","炳":"火","饼":"饣","蛃":"虫","禀":"示","冰":"冫","兵":"八","栟":"木","幷":"干","啵":"口","卜":"卜","踣":"足","襮":"衤","礴":"石","脖":"月","箔":"竹","膊":"月","亳":"亠","浡":"氵","僰":"人","伯":"亻","孛":"子","驳":"马","帛":"巾","泊":"氵","瓝":"瓜","勃":"力","钹":"钅","铂":"钅","舶":"舟","博":"十","渤":"氵","葧":"艹","鹁":"鸟","搏":"扌","閐":"钅","馻":"饣","駀":"香","簸":"竹","擘":"手","檗":"木","跛":"足","钵":"钅","饽":"饣","菠":"艹","嶓":"山","播":"扌","玻":"王","拨":"扌","波":"氵","趵":"足","裝":"衤","醭":"酉","不":"一","布":"巾","吥":"口","步":"止","怖":"忄","钚":"钅","部":"阝","埠":"土","瓿":"瓦","蔀":"艹","篰":"竹","簿":"竹","卟":"卜","补":"衤","哺":"口","捕":"扌","峬":"山","庯":"广","逋":"辶","钸":"钅","晡":"日","鵯":"鴅","餵":"飠","礤":"石","擦":"扌","才":"扌","材":"木","财":"贝","裁":"衣","菜":"艹","蔡":"艹","縩":"糹","采":"采","彩":"彡","睬":"目","踩":"足","緕":"糹","偲":"亻","猜":"犭","残":"歹","蚕":"虫","惭":"忄","灿":"火","粲":"米","璨":"王","惨":"忄","憯":"忄","黪":"黑","参":"厶","骖":"马","餐":"飠","藏":"艹","鑶":"釒","舱":"舟","沧":"氵","苍":"艹","仓":"人","曹":"曰","嘈":"口","漕":"氵","槽":"木","艚":"舟","螬":"虫","草":"艹","懆":"忄","操":"扌","糙":"米","策":"竹","册":"丿","侧":"亻","厕":"厂","恻":"忄","测":"氵","敇":"攵","箣":"竹","岑":"山","梣":"木","涔":"氵","层":"尸","曾":"曰","蹭":"足","噌":"口","垞":"土","查":"木","茬":"艹","茶":"艹","嵖":"山","搽":"扌","猹":"犭","槎":"木","察":"宀","碴":"石","檫":"木","汊":"氵","岔":"山","侘":"亻","诧":"讠","姹":"女","差":"工","镲":"钅","衩":"衤","叉":"又","杈":"木","臿":"臼","嗏":"口","插":"扌","锸":"钅","艖":"舟","嚓":"口","侪":"亻","柴":"木","豺":"豸","虿":"虫","瘥":"疒","拆":"扌","钗":"钅","蟾":"虫","蝉":"虫","鋋":"釒","廛":"广","潺":"氵","婵":"女","谗":"讠","孱":"子","禅":"礻","馋":"饣","缠":"纟","巉":"山","瀍":"氵","躔":"足","閗":"钅","繿":"糹","澶":"氵","忏":"忄","颤":"页","羼":"尸","韂":"革","铲":"钅","阐":"门","蒇":"艹","产":"亠","刬":"刂","冁":"乺","浐":"氵","谄":"讠","觇":"见","掺":"扌","搀":"扌","摻":"扌","幨":"巾","襜":"衤","肠":"月","苌":"艹","尝":"小","偿":"亻","常":"巾","徜":"彳","鲿":"鱼","长":"长","嫦":"女","韔":"韋","怅":"忄","玚":"王","畅":"田","倡":"亻","鬯":"鬯","唱":"口","氅":"毛","鋹":"釒","厂":"厂","场":"土","昶":"日","惝":"忄","敞":"攵","鲳":"鱼","伥":"亻","昌":"日","娼":"女","猖":"犭","菖":"艹","阊":"门","嘲":"口","潮":"氵","晁":"日","巢":"巛","朝":"月","耖":"耒","吵":"口","炒":"火","眧":"目","麨":"麥","抄":"扌","弨":"弓","怊":"忄","钞":"钅","焯":"火","超":"走","彻":"彳","坼":"土","掣":"手","撤":"扌","澈":"氵","扯":"扌","砗":"石","唓":"口","车":"车","伧":"亻","尘":"小","臣":"臣","忱":"忄","沉":"氵","辰":"辰","陈":"阝","宸":"宀","晨":"日","谌":"讠","痬":"疒","龀":"齿","趁":"走","榇":"木","衬":"衤","谶":"讠","趻":"足","碜":"石","墋":"土","踸":"足","抻":"扌","郴":"阝","琛":"王","嗔":"口","綿":"糹","丞":"一","成":"戈","呈":"口","承":"手","枨":"木","诚":"讠","城":"土","宬":"宀","脭":"月","铖":"钅","惩":"心","程":"禾","裎":"衤","塍":"土","酲":"酉","澄":"氵","橙":"木","乘":"丿","埕":"土","秤":"禾","逞":"辶","骋":"马","撑":"扌","瞠":"目","称":"禾","柽":"木","偁":"亻","蛏":"虫","铛":"钅","牚":"牙","琤":"王","趙":"赤","踟":"足","篪":"竹","弛":"弓","池":"氵","驰":"马","迟":"辶","茌":"艹","持":"扌","墀":"土","炽":"火","翅":"羽","敕":"攵","啻":"口","傺":"亻","彳":"彳","叱":"口","斥":"斤","赤":"赤","饬":"饣","抶":"扌","瘛":"疒","憏":"忄","褫":"衤","尺":"尸","侈":"亻","齿":"齿","耻":"耳","豉":"豆","螭":"虫","魑":"鬼","蚩":"虫","鸱":"鸟","眵":"目","笞":"竹","嗤":"口","媸":"女","摛":"扌","痴":"疒","吃":"口","哧":"口","摴":"扌","甧":"瓦","虫":"虫","崇":"山","铳":"钅","宠":"宀","艟":"舟","茺":"艹","翀":"羽","舂":"臼","憃":"心","充":"儿","冲":"冫","忡":"忄","憧":"忄","惆":"忄","绸":"纟","畴":"田","愁":"心","稠":"禾","筹":"竹","酬":"酉","踌":"足","懤":"忄","仇":"亻","俦":"亻","雠":"隹","臭":"自","殠":"歹","瞅":"目","丑":"一","瘳":"疒","犨":"牛","抽":"扌","紬":"糹","簄":"竹","厨":"厂","滁":"氵","刍":"刀","除":"阝","锄":"钅","蜍":"虫","雏":"隹","橱":"木","幮":"巾","躇":"足","蹰":"足","畜":"田","亍":"二","触":"角","俶":"亻","搐":"扌","怵":"忄","绌":"纟","憷":"忄","歜":"欠","黜":"黑","矗":"目","处":"夂","齼":"齲","杵":"木","础":"石","储":"亻","楮":"木","楚":"木","褚":"衤","出":"凵","初":"刀","樗":"木","膗":"月","嘬":"口","踹":"足","膪":"月","搋":"扌","揣":"扌","船":"舟","遄":"辶","椽":"木","传":"亻","舡":"舟","歯":"欠","串":"丨","钏":"钅","舛":"夕","喘":"口","僢":"亻","踳":"足","堾":"土","莊":"艹","川":"川","氚":"气","穿":"穴","床":"广","噇":"口","创":"刂","怆":"忄","闯":"门","疮":"疒","窗":"穴","摐":"扌","垂":"土","陲":"阝","捶":"扌","菙":"艹","棰":"木","槌":"木","锤":"钅","吹":"口","炊":"火","鰆":"魚","醇":"酉","纯":"纟","唇":"口","莼":"艹","淳":"氵","鹑":"鸟","漘":"氵","蠢":"虫","椿":"木","蝽":"虫","輴":"車","春":"日","啜":"口","辵":"辵","娖":"女","辍":"车","龊":"齿","歠":"欠","遫":"辶","媠":"女","绰":"纟","踔":"足","戳":"戈","祠":"礻","词":"讠","茨":"艹","慈":"心","辞":"辛","磁":"石","雌":"隹","鹚":"鸟","糍":"米","瓷":"瓦","次":"欠","佽":"亻","刺":"刂","赐":"贝","此":"止","佌":"亻","跐":"足","呲":"口","玼":"王","疵":"疒","从":"人","丛":"一","淙":"氵","琮":"王","聪":"耳","璁":"王","匆":"勹","苁":"艹","枞":"木","葱":"艹","骢":"马","凑":"冫","腠":"月","辏":"车","徂":"彳","殂":"歹","促":"亻","猝":"犭","蔟":"艹","醋":"酉","簇":"竹","蹙":"足","蹴":"足","粗":"米","窜":"穴","篡":"竹","爨":"火","欑":"木","汆":"水","撺":"扌","镩":"钅","蹿":"足","脆":"月","啐":"口","悴":"忄","淬":"氵","萃":"艹","毳":"毛","瘁":"疒","粹":"米","翠":"羽","璀":"王","崔":"山","催":"亻","摧":"扌","榱":"木","存":"子","寸":"寸","忖":"忄","村":"木","皴":"皮","鹾":"卤","矬":"矢","嵯":"山","痤":"疒","厝":"厂","挫":"扌","措":"扌","锉":"钅","错":"钅","脞":"月","磋":"石","撮":"扌","蹉":"足","搓":"扌","疸":"疒","笪":"竹","答":"竹","达":"辶","妲":"女","怛":"忄","瘩":"疒","靼":"革","鞑":"革","大":"大","打":"扌","哒":"口","耷":"耳","搭":"扌","嗒":"口","褡":"衤","代":"亻","岱":"山","岱d":"山","甙":"甘","绐":"纟","迨":"辶","带":"巾","待":"彳","怠":"心","殆":"歹","玳":"王","贷":"贝","埭":"土","袋":"衣","戴":"戈","黛":"黑","骀":"马","逮":"辶","歹":"歹","傣":"亻","呆":"口","旦":"日","但":"亻","诞":"讠","啖":"口","弹":"弓","惮":"忄","淡":"氵","萏":"艹","蛋":"虫","氮":"气","澹":"氵","赕":"贝","紞":"糹","掸":"扌","亶":"亠","胆":"月","殚":"歹","瘅":"疒","箪":"竹","儋":"亻","丹":"丶","单":"十","担":"扌","眈":"目","耽":"耳","郸":"阝","聃":"耳","凼":"凵","宕":"宀","砀":"石","荡":"艹","档":"木","菪":"艹","挡":"扌","党":"儿","谠":"讠","当":"彐","裆":"衤","盗":"皿","道":"辶","稻":"禾","纛":"糸","到":"刂","悼":"忄","帱":"巾","蹈":"足","捣":"扌","祷":"礻","导":"寸","岛":"山","倒":"亻","叨":"口","忉":"忄","氘":"气","刀":"刀","裯":"衤","的":"白","得":"彳","锝":"钅","德":"彳","嶝":"山","瞪":"目","磴":"石","镫":"钅","邓":"阝","凳":"几","等":"竹","戥":"戈","灯":"火","登":"癶","噔":"口","簦":"竹","蹬":"足","狄":"犭","籴":"米","镝":"钅","迪":"辶","敌":"攵","涤":"氵","荻":"艹","笛":"竹","觌":"见","嫡":"女","地":"土","帝":"巾","娣":"女","递":"辶","第":"竹","谛":"讠","棣":"木","睇":"目","缔":"纟","蒂":"艹","弟":"弓","碲":"石","珃":"王","砥":"石","骶":"骨","诋":"讠","邸":"阝","坻":"土","底":"广","抵":"扌","柢":"木","低":"亻","羝":"羊","堤":"土","嘀":"口","滴":"氵","氐":"氏","韑":"革","嗲":"口","坫":"土","店":"广","垫":"土","玷":"王","钿":"钅","惦":"忄","淀":"氵","奠":"大","殿":"殳","靛":"青","癜":"疒","簟":"竹","电":"田","佃":"亻","甸":"田","踮":"足","典":"八","点":"灬","碘":"石","掂":"扌","滇":"氵","颠":"页","巅":"山","癫":"疒","吊":"口","钓":"钅","调":"讠","掉":"扌","铞":"钅","凋":"冫","貂":"豸","碉":"石","雕":"隹","鲷":"鱼","刁":"刀","叼":"口","迭":"辶","垤":"土","瓞":"瓜","谍":"讠","喋":"口","堞":"土","揲":"扌","耋":"聅","叠":"又","牒":"片","碟":"石","蝶":"虫","蹀":"足","鲽":"鱼","爹":"父","跌":"足","钉":"钅","订":"讠","定":"宀","啶":"口","腚":"月","碇":"石","锭":"钅","铤":"钅","顶":"页","鼎":"鼎","酊":"酉","耵":"耳","疔":"疒","盯":"目","丁":"一","仃":"亻","叮":"口","玎":"王","町":"田","丢":"一","铥":"钅","恫":"忄","栋":"木","洞":"氵","胨":"月","胴":"月","硐":"石","动":"力","冻":"冫","侗":"亻","垌":"土","峒":"山","董":"艹","懂":"忄","蕫":"艹","东":"一","冬":"冫","咚":"口","岽":"山","鸫":"鸟","斗":"斗","窦":"穴","豆":"豆","逗":"辶","痘":"疒","鄈":"阝","抖":"扌","陡":"阝","蚪":"虫","都":"阝","兜":"儿","蔸":"艹","篼":"竹","毒":"母","读":"讠","渎":"氵","椟":"木","牍":"片","犊":"牜","髑":"骨","黩":"黑","独":"犭","芏":"艹","妒":"女","杜":"木","肚":"月","度":"广","渡":"氵","镀":"钅","蠹":"虫","赌":"贝","睹":"目","笃":"竹","堵":"土","嘟":"口","督":"目","段":"殳","断":"斤","缎":"纟","椴":"木","煅":"火","锻":"钅","簖":"竹","短":"矢","端":"立","篅":"竹","队":"阝","对":"寸","兑":"儿","祋":"礻","怼":"心","碓":"石","憝":"心","镦":"钅","錿":"釒","堆":"土","囤":"囗","沌":"氵","炖":"火","盾":"目","砘":"石","钝":"钅","顿":"页","遁":"辶","盹":"目","趸":"足","吨":"口","惇":"忄","敦":"攵","墩":"土","礅":"石","蹲":"足","夺":"大","铎":"钅","敚":"攵","踱":"足","堕":"土","舵":"舟","惰":"忄","跺":"足","剁":"刂","沲":"氵","朵":"木","哚":"口","垛":"土","躲":"身","掇":"扌","多":"夕","咄":"口","哆":"口","裰":"衤","呃":"口","讹":"讠","俄":"亻","娥":"女","峨":"山","莪":"艹","锇":"钅","鹅":"鸟","蛾":"虫","额":"页","扼":"扌","苊":"艹","轭":"车","垩":"土","恶":"心","厄":"厂","饿":"饣","谔":"讠","鄂":"阝","阏":"门","愕":"忄","萼":"艹","遏":"辶","腭":"月","锷":"钅","鹗":"鸟","颚":"页","噩":"口","鳄":"鱼","阨":"阝","砵":"石","婀":"女","妸":"女","诶":"讠","唔":"口","摁":"扌","恩":"心","蒽":"艹","儿":"儿","而":"而","鸸":"鸟","鲕":"鱼","聐":"而","贰":"贝","二":"二","佴":"亻","尔":"小","耳":"耳","迩":"辶","洱":"氵","饵":"饣","珥":"王","铒":"钅","乏":"丿","伐":"亻","垡":"土","罚":"罒","阀":"门","筏":"竹","珐":"王","法":"氵","砝":"石","发":"又","钒":"钅","烦":"火","樊":"木","燔":"火","璠":"王","繁":"糸","蹯":"足","蘩":"艹","凡":"几","矾":"石","犯":"犭","泛":"氵","饭":"饣","范":"艹","贩":"贝","畈":"田","梵":"木","返":"辶","氾":"氵","反":"又","汎":"氵","帆":"巾","番":"田","幡":"巾","翻":"羽","藩":"艹","蕃":"艹","防":"阝","妨":"女","房":"户","肪":"月","鲂":"鱼","放":"攵","仿":"亻","访":"讠","纺":"纟","舫":"舟","昿":"日","方":"方","邡":"阝","坊":"土","芳":"艹","枋":"木","钫":"钅","肥":"月","淝":"氵","腓":"月","吠":"口","废":"广","沸":"氵","狒":"犭","肺":"月","费":"贝","痱":"疒","镄":"钅","榧":"木","翡":"羽","篚":"竹","匪":"匚","诽":"讠","悱":"忄","斐":"文","蜚":"虫","霏":"雨","鲱":"鱼","飞":"飞","妃":"女","非":"非","啡":"口","绯":"纟","菲":"艹","扉":"户","坟":"土","汾":"氵","鼢":"鼠","棼":"木","焚":"火","奋":"大","忿":"心","偾":"亻","愤":"忄","粪":"米","份":"亻","鲼":"鱼","瀵":"氵","粉":"米","酚":"酉","分":"刀","吩":"口","纷":"纟","芬":"艹","氛":"气","逢":"辶","缝":"纟","冯":"冫","俸":"亻","凤":"几","奉":"大","讽":"讠","唪":"口","葑":"艹","锋":"钅","蜂":"虫","酆":"阝","丰":"丨","风":"风","沣":"氵","沨":"氵","峰":"山","烽":"火","枫":"木","封":"寸","疯":"疒","砜":"石","佛":"亻","缶":"缶","否":"口","孚":"子","扶":"扌","芙":"艹","怫":"忄","拂":"扌","服":"月","绂":"纟","绋":"纟","苻":"艹","俘":"亻","祓":"礻","罘":"罒","茯":"艹","郛":"阝","浮":"氵","砩":"石","蚨":"虫","匐":"勹","桴":"木","涪":"氵","符":"竹","艴":"色","菔":"艹","袱":"衤","幅":"巾","弗":"弓","伏":"亻","凫":"几","氟":"气","福":"礻","蜉":"虫","辐":"车","幞":"巾","蝠":"虫","黻":"黹","父":"父","讣":"讠","付":"亻","妇":"女","负":"贝","附":"阝","咐":"口","阜":"阜","驸":"马","复":"夂","傅":"亻","赴":"走","富":"宀","副":"刂","鳆":"鱼","覆":"覀","馥":"香","赋":"贝","缚":"纟","腹":"月","鲋":"鱼","赙":"贝","蝜":"虫","蝮":"虫","黼":"黹","腐":"肉","腑":"月","滏":"氵","辅":"车","抚":"扌","甫":"用","府":"广","拊":"扌","斧":"斤","俯":"亻","釜":"金","肤":"月","趺":"足","麸":"麦","稃":"禾","跗":"足","鄜":"阝","孵":"子","敷":"攵","呋":"口","夫":"大","钆":"钅","尜":"小","噶":"口","尬":"尢","尕":"小","嘎":"口","旮":"日","伽":"亻","呷":"口","丐":"一","钙":"钅","盖":"皿","溉":"氵","戤":"戈","概":"木","改":"攵","侅":"亻","该":"讠","陔":"阝","垓":"土","赅":"贝","旰":"日","赣":"贝","绀":"纟","淦":"氵","幹":"幹","干":"干","杆":"木","秆":"禾","赶":"走","敢":"攵","感":"心","澉":"氵","橄":"木","擀":"扌","矸":"石","肝":"月","坩":"土","泔":"氵","苷":"艹","柑":"木","竿":"竹","疳":"疒","酐":"酉","甘":"甘","尴":"尢","杠":"木","筻":"竹","戆":"心","戅":"心","岗":"山","港":"氵","纲":"纟","肛":"月","缸":"缶","钢":"钅","罡":"罒","冈":"冂","刚":"刂","锆":"钅","告":"口","诰":"讠","郜":"阝","藁":"艹","杲":"木","搞":"扌","缟":"纟","槁":"木","稿":"禾","镐":"钅","高":"高","槔":"木","睾":"目","膏":"月","篙":"竹","糕":"米","皋":"白","羔":"灬","隔":"阝","嗝":"口","塥":"土","阁":"门","革":"革","格":"木","鬲":"鬲","搿":"手","膈":"月","镉":"钅","骼":"骨","佫":"亻","个":"丨","各":"口","虼":"虫","硌":"石","铬":"钅","箇":"竹","哿":"口","舸":"舟","葛":"艹","戈":"戈","圪":"土","纥":"纟","疙":"疒","哥":"口","胳":"月","袼":"衤","鸽":"鸟","割":"刂","搁":"扌","歌":"欠","咯":"口","给":"纟","哏":"口","亘":"二","艮":"艮","茛":"艹","根":"木","跟":"足","更":"曰","鄎":"阝","绠":"纟","耿":"耳","梗":"木","鲠":"鱼","哽":"口","埂":"土","庚":"广","耕":"耒","赓":"贝","羹":"羊","供":"亻","共":"八","贡":"贝","珙":"王","巩":"工","汞":"水","拱":"扌","觥":"角","肱":"月","宫":"宀","恭":"小","蚣":"虫","躬":"身","龚":"龙","工":"工","弓":"弓","公":"八","功":"力","攻":"攵","构":"木","诟":"讠","购":"贝","垢":"土","够":"夕","媾":"女","彀":"弓","觏":"见","遘":"辶","笱":"竹","岣":"山","狗":"犭","苟":"艹","枸":"木","勾":"勹","佝":"亻","沟":"氵","钩":"钅","缑":"纟","篝":"竹","鞲":"革","鲴":"鱼","固":"囗","故":"攵","顾":"页","崮":"山","梏":"木","牿":"牜","雇":"隹","痼":"疒","锢":"钅","鼓":"鼓","嘏":"口","臌":"月","瞽":"目","鹘":"鸟","古":"口","汩":"氵","诂":"讠","谷":"谷","股":"月","钴":"钅","蛊":"虫","牯":"牜","骨":"骨","罟":"罒","穣":"禾","觚":"角","辜":"辛","酤":"酉","毂":"殳","箍":"竹","估":"亻","咕":"口","姑":"女","孤":"子","沽":"氵","轱":"车","鸪":"鸟","菇":"艹","菰":"艹","蛄":"虫","诖":"讠","挂":"扌","褂":"衤","卦":"卜","剐":"刂","寡":"宀","呱":"口","瓜":"瓜","刮":"刂","胍":"月","鸹":"鸟","栝":"木","怪":"忄","拐":"扌","乖":"丿","冠":"冖","盥":"皿","灌":"氵","瓘":"王","贯":"贝","惯":"忄","掼":"扌","涫":"氵","鹳":"鸟","罐":"缶","馆":"饣","管":"竹","倌":"亻","棺":"木","鳏":"鱼","关":"乺","观":"见","官":"宀","逛":"辶","广":"广","犷":"犭","光":"儿","咣":"口","桄":"木","胱":"月","桧":"木","刽":"刂","刿":"刂","柜":"木","炅":"火","贵":"贝","桂":"木","跪":"足","鳜":"鱼","宄":"宀","轨":"车","庋":"广","匦":"匚","诡":"讠","癸":"癶","鬼":"鬼","晷":"日","簋":"竹","傀":"亻","瑰":"王","鲑":"鱼","硅":"石","归":"彐","圭":"土","妫":"女","龟":"龟","规":"见","皈":"白","闺":"门","雟":"隹","琯":"王","棍":"木","衮":"衣","绲":"纟","辊":"车","滚":"氵","磙":"石","鲧":"鱼","虢":"虍","馘":"首","囯":"囗","国":"囗","帼":"巾","掴":"扌","过":"辶","蜾":"虫","裹":"衣","果":"木","椁":"木","呙":"口","埚":"土","郭":"阝","崞":"山","聒":"耳","锅":"钅","蝈":"虫","蛤":"虫","铪":"钅","哈":"口","孩":"子","骸":"骨","还":"辶","亥":"亠","骇":"马","害":"宀","氦":"气","海":"氵","胲":"月","醢":"酉","邗":"阝","含":"口","邯":"阝","函":"凵","浛":"氵","晗":"日","涵":"氵","焓":"火","寒":"宀","韩":"韦","汗":"氵","悍":"忄","捍":"扌","焊":"火","菡":"艹","傼":"亻","颔":"页","撖":"扌","憾":"忄","撼":"扌","翰":"羽","旱":"日","瀚":"氵","汉":"氵","琱":"王","罕":"冖","喊":"口","蚶":"虫","酣":"酉","憨":"心","鼾":"鼻","顸":"页","杭":"木","绗":"纟","航":"舟","颃":"页","沆":"氵","夯":"大","嚎":"口","壕":"土","濠":"氵","蚝":"虫","毫":"毛","嗥":"口","豪":"豕","渂":"氵","浩":"氵","耗":"耒","皓":"白","滈":"氵","颢":"页","灏":"氵","号":"口","昊":"日","好":"女","郝":"阝","蒿":"艹","嚆":"口","薅":"艹","禾":"禾","合":"口","何":"亻","劾":"力","和":"口","河":"氵","曷":"曰","阂":"门","核":"木","盍":"皿","荷":"艹","涸":"氵","盒":"皿","菏":"艹","颌":"页","阖":"门","翮":"羽","詚":"言","褐":"衤","赫":"赤","鹤":"鸟","壑":"土","贺":"贝","喝":"口","嗬":"口","诃":"讠","呵":"口","黑":"黑","嘿":"口","嗨":"口","痕":"疒","恨":"忄","很":"彳","狠":"犭","恒":"忄","桁":"木","珩":"王","横":"木","衡":"行","蘅":"艹","亨":"亠","哼":"口","红":"纟","宏":"宀","闳":"门","泓":"氵","弘":"弓","洪":"氵","荭":"艹","虹":"虫","鸿":"鸟","蕻":"艹","黉":"黄","讧":"讠","哄":"口","訇":"言","烘":"火","薨":"艹","轰":"车","喉":"口","猴":"犭","瘊":"疒","篌":"竹","糇":"米","骺":"骨","郼":"阝","后":"口","厚":"厂","後":"彳","逅":"辶","候":"亻","堠":"土","鲎":"鱼","侯":"亻","吼":"口","醐":"酉","觳":"角","囫":"囗","弧":"弓","狐":"犭","胡":"月","壶":"士","斛":"斗","湖":"氵","猢":"犭","葫":"艹","煳":"火","瑚":"王","鹕":"鸟","槲":"木","糊":"米","蝴":"虫","鹄":"鸟","鹱":"鸟","互":"二","户":"户","冱":"冫","护":"扌","沪":"氵","岵":"山","怙":"忄","戽":"户","祜":"礻","笏":"竹","扈":"户","瓠":"瓜","鄠":"阝","虎":"虍","浒":"氵","唬":"口","琥":"王","呼":"口","忽":"心","乎":"丿","烀":"火","轷":"车","唿":"口","惚":"忄","滹":"氵","华":"十","哗":"口","骅":"马","铧":"钅","滑":"氵","猾":"犭","划":"刂","画":"田","话":"讠","桦":"木","觟":"角","化":"匕","砉":"石","花":"艹","怀":"忄","徊":"彳","淮":"氵","槐":"木","踝":"足","坏":"土","洹":"氵","桓":"木","萑":"艹","环":"王","锾":"钅","寰":"宀","缳":"纟","鬟":"髟","圜":"囗","幻":"幺","奂":"大","宦":"宀","唤":"口","换":"扌","浣":"氵","涣":"氵","患":"心","焕":"火","逭":"辶","痪":"疒","豢":"豕","漶":"氵","鲩":"鱼","擐":"扌","缓":"纟","欢":"欠","獾":"犭","徨":"彳","惶":"忄","湟":"氵","遑":"辶","煌":"火","潢":"氵","璜":"王","篁":"竹","蝗":"虫","癀":"疒","磺":"石","簧":"竹","蟥":"虫","皇":"白","凰":"几","隍":"阝","黄":"黄","鳇":"鱼","晃":"日","滉":"氵","谎":"讠","幌":"巾","恍":"忄","肓":"月","荒":"艹","慌":"忄","回":"囗","洄":"氵","茴":"艹","蛔":"虫","卉":"十","汇":"氵","会":"人","讳":"讠","烩":"火","贿":"贝","彗":"彐","晦":"日","秽":"禾","喙":"口","惠":"心","缋":"纟","慧":"心","蕙":"艹","浍":"氵","绘":"纟","荟":"艹","诲":"讠","恚":"心","蟪":"虫","毁":"殳","悔":"忄","烜":"火","麾":"麻","徽":"彳","隳":"阝","灰":"火","诙":"讠","咴":"口","恢":"忄","挥":"扌","虺":"虫","晖":"日","珲":"王","辉":"车","浑":"氵","馄":"饣","魂":"鬼","诨":"讠","混":"氵","溷":"氵","昏":"日","荤":"艹","婚":"女","阍":"门","活":"氵","霍":"雨","或":"戈","货":"贝","获":"艹","祸":"礻","惑":"心","镬":"钅","嚯":"口","藿":"艹","蠖":"虫","火":"火","伙":"亻","钬":"钅","夥":"夕","耠":"耒","锪":"钅","劐":"刂","豁":"谷","攉":"扌","蕺":"艹","辑":"车","籍":"竹","嵴":"山","戢":"戈","棘":"木","殛":"歹","集":"隹","嫉":"女","楫":"木","蒺":"艹","瘠":"疒","吉":"口","岌":"山","汲":"氵","级":"纟","即":"卩","极":"木","亟":"二","佶":"亻","姞":"女","急":"心","及":"又","笈":"竹","疾":"疒","諔":"言","骥":"马","祭":"示","蓟":"艹","暨":"日","跽":"足","霁":"雨","鲚":"鱼","稷":"禾","鲫":"鱼","冀":"八","髻":"髟","既":"旡","洎":"氵","济":"氵","继":"纟","觊":"见","偈":"亻","寂":"宀","寄":"宀","悸":"忄","计":"讠","记":"讠","伎":"亻","纪":"纟","妓":"女","忌":"心","技":"扌","芰":"艹","际":"阝","剂":"刂","季":"子","哜":"口","迹":"辶","绩":"纟","几":"几","己":"己","虮":"虫","挤":"扌","脊":"月","掎":"扌","戟":"戈","麂":"鹿","畸":"田","跻":"足","箕":"竹","畿":"田","稽":"禾","齑":"齐","墼":"土","激":"氵","羁":"罒","嵇":"山","犄":"牜","缉":"纟","赍":"贝","剞":"刂","唧":"口","姬":"女","屐":"尸","积":"禾","笄":"竹","基":"土","丌":"一","讥":"讠","击":"凵","叽":"口","饥":"饣","乩":"乙","圾":"土","机":"木","玑":"王","肌":"月","芨":"艹","矶":"石","鸡":"鸟","咭":"口","戛":"戈","铗":"钅","蛱":"虫","颊":"页","袷":"衤","郏":"阝","荚":"艹","恝":"心","价":"亻","驾":"马","架":"木","稼":"禾","嫁":"女","假":"亻","胛":"月","贾":"贝","钾":"钅","徦":"彳","瘕":"疒","甲":"田","叚":"又","岬":"山","挟":"扌","佳":"亻","葭":"艹","跏":"足","嘉":"口","镓":"钅","迦":"辶","枷":"木","浃":"氵","珈":"王","家":"宀","痂":"疒","笳":"竹","袈":"衣","加":"力","夹":"大","筴":"竹","见":"见","件":"亻","建":"廴","饯":"饣","剑":"刂","牮":"牛","荐":"艹","贱":"贝","健":"亻","涧":"氵","舰":"舟","渐":"氵","谏":"讠","楗":"木","毽":"毛","溅":"氵","腱":"月","践":"足","箭":"竹","踺":"足","鉴":"金","键":"钅","僭":"亻","謇":"言","蹇":"足","囝":"囗","拣":"扌","枧":"木","俭":"亻","柬":"木","茧":"艹","捡":"扌","笕":"竹","减":"冫","剪":"刀","检":"木","趼":"足","睑":"目","硷":"石","裥":"衤","锏":"钅","简":"竹","谫":"讠","戬":"戈","碱":"石","翦":"羽","湔":"氵","犍":"牜","缄":"纟","搛":"扌","煎":"灬","缣":"纟","蒹":"艹","鲣":"鱼","鹣":"鸟","鞯":"革","戋":"戈","奸":"女","尖":"小","幵":"干","坚":"土","歼":"歹","间":"门","肩":"月","艰":"艮","兼":"乺","监":"皿","笺":"竹","菅":"艹","匠":"匚","降":"阝","绛":"纟","酱":"酉","犟":"牛","糨":"米","讲":"讠","奖":"大","桨":"木","蒋":"艹","耩":"耒","江":"氵","姜":"女","将":"寸","茳":"艹","浆":"水","豇":"豆","僵":"亻","彊":"弓","缰":"纟","礓":"石","疆":"田","嚼":"口","叫":"口","轿":"车","较":"车","教":"攵","窖":"穴","酵":"酉","噍":"口","醮":"酉","糸":"糸","皎":"白","矫":"矢","脚":"月","铰":"钅","搅":"扌","剿":"刂","敫":"攵","徼":"彳","缴":"纟","角":"角","佼":"亻","挢":"扌","狡":"犭","绞":"纟","饺":"饣","躥":"足","鹪":"鸟","鲛":"鱼","蕉":"艹","礁":"石","浇":"氵","茭":"艹","骄":"马","胶":"月","椒":"木","焦":"灬","蛟":"虫","跤":"足","僬":"亻","艽":"艹","交":"亠","郊":"阝","姣":"女","娇":"女","萩":"艹","节":"艹","讦":"讠","孑":"子","杰":"木","劫":"力","诘":"讠","拮":"扌","洁":"氵","结":"纟","桀":"木","婕":"女","捷":"扌","颉":"页","睫":"目","截":"戈","碣":"石","竭":"立","鲒":"鱼","羯":"羊","戒":"戈","芥":"艹","届":"尸","介":"人","界":"田","疥":"疒","诫":"讠","借":"亻","蚧":"虫","骱":"骨","藉":"艹","姐":"女","解":"角","揭":"扌","街":"行","阶":"阝","疖":"疒","皆":"白","接":"扌","秸":"禾","喈":"口","嗟":"口","晋":"日","浸":"氵","烬":"火","赆":"贝","缙":"纟","禁":"示","靳":"革","觐":"见","噤":"口","尽":"尸","劲":"力","妗":"女","近":"辶","进":"辶","荩":"艹","馑":"饣","槿":"木","瑾":"王","仅":"亻","卺":"厄","紧":"糸","堇":"土","谨":"讠","锦":"钅","廑":"广","琿":"王","筋":"竹","襟":"衤","巾":"巾","今":"人","斤":"斤","金":"金","津":"氵","矜":"矛","衿":"衤","俓":"亻","胫":"月","痉":"疒","竞":"立","婧":"女","竟":"立","敬":"攵","靖":"青","境":"土","獍":"犭","静":"青","镜":"钅","净":"冫","弪":"弓","径":"彳","肼":"月","颈":"页","景":"日","儆":"亻","憬":"忄","警":"言","井":"二","阱":"阝","刭":"刂","京":"亠","泾":"氵","经":"纟","茎":"艹","荆":"艹","惊":"忄","旌":"方","菁":"艹","晶":"日","腈":"月","睛":"目","粳":"米","兢":"儿","精":"米","鲸":"鱼","迥":"辶","炯":"火","窘":"穴","扃":"户","旧":"日","臼":"臼","咎":"口","疚":"疒","柩":"木","桕":"木","厩":"厂","救":"攵","就":"尢","舅":"臼","僦":"亻","鹫":"鸟","韭":"韭","酒":"酉","灸":"火","玖":"王","九":"丿","久":"丿","纠":"纟","究":"穴","鸠":"鸟","赳":"走","阄":"门","啾":"口","揪":"扌","樛":"木","鬏":"髟","局":"尸","桔":"木","菊":"艹","橘":"木","锯":"钅","醵":"酉","犋":"牜","飓":"风","惧":"忄","据":"扌","距":"足","窭":"穴","聚":"耳","屦":"尸","踞":"足","遽":"辶","句":"口","巨":"工","讵":"讠","姖":"女","拒":"扌","苣":"艹","具":"八","炬":"火","钜":"钅","俱":"亻","倨":"亻","剧":"刂","咀":"口","沮":"氵","举":"丶","矩":"矢","莒":"艹","榉":"木","龃":"齿","踽":"足","伡":"亻","居":"尸","拘":"扌","椐":"木","琚":"王","趄":"走","锔":"钅","裾":"衤","雎":"隹","鞠":"革","鞫":"革","狙":"犭","苴":"艹","驹":"马","疽":"疒","掬":"扌","倦":"亻","桊":"木","狷":"犭","绢":"纟","卷":"厄","眷":"目","鄄":"阝","锩":"钅","镌":"钅","蠲":"虫","娟":"女","捐":"扌","涓":"氵","鹃":"鸟","孓":"子","决":"冫","诀":"讠","抉":"扌","玦":"王","珏":"王","绝":"纟","觉":"见","崛":"山","掘":"扌","桷":"木","觖":"角","厥":"厂","镢":"钅","獗":"犭","蕨":"艹","劂":"刂","谲":"讠","矍":"目","橛":"木","爵":"爫","爝":"火","攫":"扌","倔":"亻","蹶":"足","噘":"口","撅":"扌","隽":"隹","骏":"马","竣":"立","俊":"亻","郡":"阝","峻":"山","捃":"扌","军":"冖","君":"口","均":"土","钧":"钅","麇":"鹿","皲":"皮","菌":"艹","筠":"竹","卡":"卜","佧":"亻","胩":"月","咔":"口","咖":"口","喀":"口","忾":"忄","锴":"钅","凯":"几","剀":"刂","垲":"土","恺":"忄","铠":"钅","慨":"忄","蒈":"艹","楷":"木","锎":"钅","开":"廾","揩":"扌","阚":"门","瞰":"目","看":"目","坎":"土","侃":"亻","砍":"石","莰":"艹","槛":"木","刊":"刂","勘":"力","龛":"龙","堪":"土","戡":"戈","扛":"扌","亢":"亠","伉":"亻","囥":"囗","抗":"扌","炕":"火","钪":"钅","闶":"门","康":"广","慷":"忄","糠":"米","鱧":"魚","铐":"钅","犒":"牜","靠":"非","考":"聅","拷":"扌","栲":"木","烤":"火","尻":"尸","壳":"士","咳":"口","客":"宀","恪":"忄","课":"讠","氪":"气","骒":"马","缂":"纟","克":"十","刻":"刂","溘":"氵","锞":"钅","渴":"氵","可":"口","岢":"山","坷":"土","屙":"尸","苛":"艹","柯":"木","珂":"王","科":"禾","轲":"车","疴":"疒","钶":"钅","棵":"木","髁":"骨","稞":"禾","窠":"穴","颗":"页","瞌":"目","磕":"石","蝌":"虫","嗑":"口","颏":"页","裉":"衤","肯":"月","垦":"土","恳":"心","啃":"口","坑":"土","吭":"口","铿":"钅","控":"扌","孔":"子","恐":"心","箜":"竹","空":"穴","倥":"亻","崆":"山","蔻":"艹","叩":"口","扣":"扌","寇":"宀","筘":"竹","口":"口","抠":"扌","芤":"艹","眍":"目","库":"广","绔":"纟","喾":"口","裤":"衤","酷":"酉","苦":"艹","刳":"刂","枯":"木","哭":"口","堀":"土","窟":"穴","骷":"骨","挎":"扌","胯":"月","跨":"足","侉":"亻","垮":"土","夸":"大","块":"土","快":"忄","侩":"亻","郐":"阝","哙":"口","狯":"犭","脍":"月","筷":"竹","蒯":"艹","款":"欠","宽":"宀","髋":"骨","狂":"犭","诳":"讠","邝":"阝","圹":"土","纩":"纟","况":"冫","旷":"日","矿":"石","眶":"目","贶":"贝","框":"木","夼":"大","匡":"匚","诓":"讠","哐":"口","筐":"竹","逵":"辶","奎":"大","夔":"夂","馗":"首","喹":"口","揆":"扌","葵":"艹","暌":"日","魁":"鬼","睽":"目","蝰":"虫","匮":"匚","喟":"口","愦":"忄","愧":"忄","溃":"氵","蒉":"艹","馈":"饣","篑":"竹","聩":"耳","跬":"足","岿":"山","悝":"忄","盔":"皿","窥":"穴","亏":"二","困":"囗","悃":"忄","捆":"扌","阃":"门","壸":"士","梱":"木","锟":"钅","髡":"髟","醌":"酉","鲲":"鱼","坤":"土","昆":"日","焜":"火","琨":"王","扩":"扌","括":"扌","蛞":"虫","阔":"门","廓":"广","旯":"日","砬":"石","剌":"刂","腊":"月","瘌":"疒","蜡":"虫","辣":"辛","喇":"口","邋":"辶","垃":"土","拉":"扌","啦":"口","来":"木","崃":"山","徕":"彳","涞":"氵","莱":"艹","铼":"钅","赉":"贝","睐":"目","赖":"贝","濑":"氵","癞":"疒","籁":"竹","兰":"乺","岚":"山","拦":"扌","栏":"木","婪":"女","阑":"门","蓝":"艹","谰":"讠","澜":"氵","褴":"衤","斓":"文","篮":"竹","镧":"钅","烂":"火","滥":"氵","览":"见","揽":"扌","缆":"纟","榄":"木","漤":"氵","罱":"罒","懒":"忄","郎":"阝","狼":"犭","廊":"广","琅":"王","阆":"门","榔":"木","稂":"禾","锒":"钅","螂":"虫","浪":"氵","蒗":"艹","莨":"艹","朗":"月","啷":"口","劳":"力","牢":"牛","嫪":"女","崂":"山","痨":"疒","铹":"钅","醪":"酉","涝":"氵","烙":"火","耢":"耒","酪":"酉","唠":"口","铑":"钅","老":"老","佬":"亻","姥":"女","栳":"木","捞":"扌","了":"乙","仂":"亻","乐":"丿","叻":"口","泐":"氵","勒":"力","鳓":"鱼","嘞":"口","雷":"雨","嫘":"女","缧":"纟","檑":"木","镭":"钅","羸":"羊","肋":"月","泪":"氵","类":"米","累":"糸","酹":"酉","擂":"扌","傫":"亻","磊":"石","蕾":"艹","儡":"亻","耒":"耒","诔":"讠","垒":"土","塄":"土","棱":"木","楞":"木","愣":"忄","冷":"冫","厘":"厂","梨":"木","狸":"犭","离":"忄","鲡":"鱼","黎":"黍","篱":"竹","骊":"马","犁":"牛","喱":"口","鹂":"鸟","漓":"氵","缡":"纟","蓠":"艹","蜊":"虫","嫠":"女","璃":"王","黧":"黑","蠡":"虫","罹":"罒","藜":"艹","釐":"褃","莉":"艹","莅":"艹","唳":"口","笠":"竹","粒":"米","粝":"米","蛎":"虫","傈":"亻","痢":"疒","詈":"言","疠":"疒","雳":"雨","溧":"氵","力":"力","历":"厂","厉":"厂","立":"立","吏":"口","丽":"丶","利":"刂","励":"力","呖":"口","坜":"土","沥":"氵","苈":"艹","例":"亻","戾":"户","枥":"木","隶":"隶","俐":"亻","俪":"亻","栎":"木","疬":"疒","荔":"艹","轹":"车","郦":"阝","栗":"木","猁":"犭","砺":"石","砾":"石","篥":"竹","礼":"礻","李":"木","里":"里","俚":"亻","哩":"口","娌":"女","逦":"辶","理":"王","锂":"钅","鲤":"鱼","澧":"氵","醴":"酉","鳢":"鱼","奁":"大","连":"辶","帘":"巾","怜":"忄","涟":"氵","莲":"艹","联":"耳","裢":"衤","廉":"广","鲢":"鱼","濂":"氵","臁":"月","镰":"钅","蠊":"虫","链":"钅","楝":"木","潋":"氵","练":"纟","炼":"火","恋":"心","殓":"歹","敛":"攵","琏":"王","脸":"月","裣":"衤","蔹":"艹","良":"艮","凉":"冫","梁":"木","涼":"氵","椋":"木","粮":"米","粱":"米","墚":"土","踉":"足","亮":"亠","谅":"讠","辆":"车","晾":"日","量":"里","靓":"青","魉":"鬼","两":"一","俩":"亻","辽":"辶","疗":"疒","聊":"耳","僚":"亻","寥":"宀","鹩":"鸟","嘹":"口","寮":"宀","撩":"扌","獠":"犭","缭":"纟","燎":"火","潦":"氵","撂":"扌","尥":"尢","料":"斗","镣":"钅","廖":"广","钌":"钅","蓼":"艹","躐":"足","鬣":"髟","列":"刂","劣":"力","冽":"冫","裂":"衣","趔":"走","洌":"氵","埒":"土","烈":"灬","捩":"扌","猎":"犭","咧":"口","鳞":"鱼","麟":"鹿","邻":"阝","林":"木","临":"丨","啉":"口","淋":"氵","琳":"王","粼":"米","嶙":"山","遴":"辶","辚":"车","霖":"雨","瞵":"目","磷":"石","鏻":"釒","躏":"足","蔺":"艹","膦":"月","赁":"贝","吝":"口","凛":"冫","廪":"广","懔":"忄","檩":"木","拎":"扌","伶":"亻","灵":"火","囹":"囗","泠":"氵","苓":"艹","柃":"木","玲":"王","瓴":"瓦","凌":"冫","菱":"艹","蛉":"虫","铃":"钅","陵":"阝","棂":"木","绫":"纟","羚":"羊","翎":"羽","聆":"耳","零":"雨","龄":"齿","鲮":"鱼","酃":"阝","渞":"氵","令":"人","另":"口","呤":"口","领":"页","岭":"山","刘":"刂","瘤":"疒","遛":"辶","馏":"饣","骝":"马","榴":"木","浏":"氵","流":"氵","留":"田","琉":"王","硫":"石","旒":"方","鎏":"金","镏":"钅","鹨":"鸟","六":"八","柳":"木","绺":"纟","锍":"钅","溜":"氵","熘":"火","栊":"木","珑":"王","胧":"月","砻":"石","龙":"龙","咙":"口","泷":"氵","茏":"艹","笼":"竹","聋":"耳","隆":"阝","癃":"疒","窿":"穴","陇":"阝","垄":"土","拢":"扌","髅":"骨","耧":"耒","蝼":"虫","娄":"女","蒌":"艹","楼":"木","陋":"阝","漏":"氵","瘘":"疒","镂":"钅","嵝":"山","搂":"扌","篓":"竹","喽":"口","氇":"毛","鸬":"鸟","舻":"舟","颅":"页","鲈":"鱼","卢":"卜","庐":"广","芦":"艹","垆":"土","泸":"氵","炉":"火","栌":"木","胪":"月","轳":"车","露":"雨","陆":"阝","碌":"石","路":"足","漉":"氵","戮":"戈","逯":"辶","鹿":"鹿","琭":"王","禄":"礻","录":"王","赂":"贝","辂":"车","渌":"氵","麓":"鹿","甪":"用","辘":"车","潞":"氵","璐":"王","簏":"竹","鹭":"鸟","卤":"卜","虏":"虍","掳":"扌","鲁":"鱼","橹":"木","镥":"钅","噜":"口","撸":"扌","驴":"马","闾":"门","榈":"木","律":"彳","虑":"虍","率":"玄","绿":"纟","氯":"气","滤":"氵","履":"尸","捋":"扌","吕":"口","侣":"亻","旅":"方","稆":"禾","屡":"尸","缕":"纟","膂":"月","偻":"亻","孪":"子","峦":"山","挛":"手","栾":"木","鸾":"鸟","脔":"肉","滦":"氵","銮":"金","娈":"女","乱":"乙","卵":"卩","略":"田","锊":"钅","掠":"扌","抡":"扌","仑":"人","伦":"亻","囵":"囗","沦":"氵","纶":"纟","轮":"车","论":"讠","罗":"罒","猡":"犭","脶":"月","萝":"艹","逻":"辶","椤":"木","锣":"钅","箩":"竹","骡":"马","螺":"虫","落":"艹","摞":"扌","漯":"氵","雒":"隹","泺":"氵","洛":"氵","络":"纟","荦":"艹","骆":"马","珞":"王","跞":"足","裸":"衤","瘰":"疒","蠃":"虫","倮":"亻","吗":"口","嘛":"口","麻":"麻","蟆":"虫","杩":"木","祃":"礻","骂":"马","傌":"亻","马":"马","犸":"犭","玛":"王","码":"石","蚂":"虫","妈":"女","埋":"土","霾":"雨","唛":"口","劢":"力","迈":"辶","麦":"麦","卖":"十","脉":"月","买":"乙","荬":"艹","蛮":"虫","馒":"饣","樠":"木","瞒":"目","鞔":"革","鳗":"鱼","曼":"曰","谩":"讠","墁":"土","幔":"巾","慢":"忄","漫":"氵","缦":"纟","蔓":"艹","熳":"火","镘":"钅","满":"氵","螨":"虫","颟":"页","邙":"阝","忙":"忄","芒":"艹","尨":"尢","盲":"目","茫":"艹","硭":"石","氓":"氏","莽":"艹","漭":"氵","蟒":"虫","蟊":"虫","毛":"毛","矛":"矛","牦":"牜","茅":"艹","旄":"方","茆":"艹","锚":"钅","髦":"髟","茂":"艹","冒":"冂","懋":"心","贸":"贝","耄":"聅","袤":"衣","帽":"巾","鄚":"阝","瑁":"王","瞀":"目","貌":"豸","卯":"卩","峁":"山","泖":"氵","昴":"日","铆":"钅","猫":"犭","么":"丿","麽":"麻","媒":"女","嵋":"山","湄":"氵","猸":"犭","楣":"木","煤":"火","没":"氵","枚":"木","玫":"王","眉":"目","莓":"艹","梅":"木","酶":"酉","镅":"钅","鹛":"鸟","霉":"雨","妹":"女","魅":"鬼","昧":"日","袂":"衤","媚":"女","寐":"宀","每":"母","美":"羊","浼":"氵","渼":"氵","镁":"钅","门":"门","扪":"扌","钔":"钅","们":"亻","闷":"门","焖":"火","懑":"心","虻":"虫","朦":"月","檬":"木","萌":"艹","盟":"皿","甍":"瓦","瞢":"目","礞":"石","艨":"舟","蒙":"艹","孟":"子","梦":"木","懵":"忄","蠓":"虫","锰":"钅","艋":"舟","蜢":"虫","勐":"力","猛":"犭","弥":"弓","祢":"礻","迷":"辶","猕":"犭","谜":"讠","醚":"酉","糜":"米","縻":"糸","麋":"鹿","靡":"非","蘼":"艹","汨":"氵","宓":"宀","泌":"氵","觅":"见","秘":"禾","密":"宀","幂":"巾","谧":"讠","嘧":"口","蜜":"虫","脒":"月","芈":"卝","弭":"弓","洣":"氵","敉":"攵","米":"米","咪":"口","眯":"目","眠":"目","绵":"纟","棉":"木","面":"面","渑":"氵","腼":"月","免":"刀","沔":"氵","黾":"黾","勉":"力","眄":"目","娩":"女","冕":"冂","湎":"氵","缅":"纟","苗":"艹","描":"扌","瞄":"目","鹋":"鸟","妙":"女","庙":"广","杪":"木","眇":"目","秒":"禾","淼":"水","渺":"氵","缈":"纟","藐":"艹","邈":"辶","喵":"口","蔑":"艹","篾":"竹","蠛":"虫","灭":"火","咩":"口","民":"氏","岷":"山","苠":"艹","珉":"王","缗":"纟","昮":"日","愍":"心","鳘":"鱼","闵":"门","抿":"扌","泯":"氵","闽":"门","悯":"忄","敏":"攵","湣":"氵","皿":"皿","茗":"艹","冥":"冖","铭":"钅","鄍":"阝","溟":"氵","暝":"日","瞑":"目","螟":"虫","名":"口","明":"日","鸣":"鸟","命":"口","酩":"酉","谬":"讠","缪":"纟","摩":"手","磨":"石","谟":"讠","嫫":"女","馍":"饣","摹":"手","模":"木","膜":"月","蘑":"艹","魔":"鬼","嬷":"女","貉":"豸","抹":"扌","镆":"钅","耱":"耒","默":"黑","貘":"豸","末":"木","殁":"歹","沫":"氵","茉":"艹","陌":"阝","寞":"宀","漠":"氵","蓦":"艹","貊":"豸","墨":"土","瘼":"疒","秣":"禾","莫":"艹","摸":"扌","牟":"牛","侔":"亻","眸":"目","谋":"讠","鍪":"金","蝥":"虫","蛑":"虫","某":"木","哞":"口","毪":"毛","钼":"钅","募":"力","墓":"土","幕":"巾","睦":"目","木":"木","仫":"亻","目":"目","沐":"氵","牧":"牜","苜":"艹","穆":"禾","慕":"小","暮":"日","亩":"亠","牡":"牜","姆":"女","拇":"扌","母":"母","拿":"手","镎":"钅","呐":"口","那":"阝","纳":"纟","肭":"月","娜":"女","衲":"衤","钠":"钅","捺":"扌","哪":"口","奈":"大","柰":"木","耐":"而","萘":"艹","鼐":"鼎","乃":"丿","奶":"女","艿":"艹","氖":"气","南":"十","难":"隹","喃":"口","男":"田","楠":"木","赧":"赤","腩":"月","蝻":"虫","囡":"囗","囊":"口","馕":"饣","曩":"日","攮":"扌","瀼":"氵","囔":"口","呶":"口","挠":"扌","硇":"石","猱":"犭","蛲":"虫","闹":"门","淖":"氵","媍":"女","垴":"土","恼":"忄","脑":"月","瑙":"王","孬":"子","呢":"口","讷":"讠","内":"冂","馁":"饣","嫩":"女","能":"月","铌":"钅","猊":"犭","尼":"尸","坭":"土","怩":"忄","泥":"氵","倪":"亻","霓":"雨","鲵":"鱼","您":"心","昵":"日","逆":"辶","匿":"匚","溺":"氵","睨":"目","腻":"月","伲":"亻","你":"亻","拟":"扌","旎":"方","妮":"女","鲇":"鱼","黏":"黍","年":"干","廿":"廾","念":"心","埝":"土","捻":"扌","辇":"车","撵":"扌","碾":"石","辗":"车","蔫":"艹","拈":"扌","娘":"女","酿":"酉","尿":"尸","脲":"月","鸟":"鸟","茑":"艹","袅":"衣","嬲":"女","陧":"阝","涅":"氵","聂":"耳","臬":"自","啮":"口","嗫":"口","镊":"钅","镍":"钅","颞":"页","蹑":"足","孽":"子","蘖":"艹","乜":"乙","捏":"扌","恁":"心","宁":"宀","咛":"口","狞":"犭","柠":"木","聍":"耳","凝":"冫","甯":"用","佞":"亻","泞":"氵","拧":"扌","牛":"牛","拗":"扌","忸":"忄","扭":"扌","狃":"犭","纽":"纟","杻":"木","钮":"钅","妞":"女","农":"冖","侬":"亻","哝":"口","浓":"氵","脓":"月","弄":"廾","耨":"耒","奴":"女","孥":"子","驽":"马","怒":"心","努":"力","弩":"弓","胬":"肉","恧":"心","衄":"血","女":"女","钕":"钅","暖":"日","疟":"疒","虐":"虍","挪":"扌","傩":"亻","诺":"讠","喏":"口","搦":"扌","锘":"钅","懦":"忄","糯":"米","哦":"口","噢":"口","怄":"忄","呕":"口","偶":"亻","耦":"耒","藕":"艹","沤":"氵","讴":"讠","欧":"欠","殴":"殳","瓯":"瓦","鸥":"鸟","杷":"木","爬":"爪","耙":"耒","琶":"王","筢":"竹","帕":"巾","怕":"忄","啪":"口","葩":"艹","趴":"足","哌":"口","派":"氵","湃":"氵","蒎":"艹","牌":"片","俳":"亻","徘":"彳","排":"扌","拍":"扌","爿":"爿","柈":"木","盘":"皿","蟠":"虫","磐":"石","蹒":"足","泮":"氵","叛":"又","盼":"目","畔":"田","袢":"衤","判":"刂","襻":"衤","坢":"土","潘":"氵","攀":"手","庞":"广","逄":"辶","旁":"方","螃":"虫","彷":"彳","磅":"石","胖":"月","耪":"耒","滂":"氵","乓":"丿","刨":"刂","咆":"口","庖":"广","狍":"犭","袍":"衤","匏":"勹","泡":"氵","疱":"疒","炮":"火","跑":"足","抛":"扌","脬":"月","陪":"阝","培":"土","赔":"贝","锫":"钅","裴":"衣","沛":"氵","佩":"亻","帔":"巾","旆":"方","珮":"王","配":"酉","辔":"车","霈":"雨","呸":"口","胚":"月","醅":"酉","盆":"皿","湓":"氵","喷":"口","朋":"月","堋":"土","蟛":"虫","彭":"彡","棚":"木","硼":"石","蓬":"艹","鹏":"鸟","澎":"氵","篷":"竹","膨":"月","苖":"艹","碰":"石","捧":"扌","嘭":"口","砰":"石","烹":"灬","怦":"忄","抨":"扌","罴":"罒","蜱":"虫","貔":"豸","鼙":"鼓","铍":"钅","琵":"王","脾":"月","皮":"皮","芘":"艹","枇":"木","毗":"比","疲":"疒","蚍":"虫","郫":"阝","陴":"阝","啤":"口","埤":"土","辟":"辛","屁":"尸","媲":"女","睥":"目","僻":"亻","甓":"瓦","譬":"言","匹":"匚","仳":"亻","圮":"土","擗":"扌","癖":"疒","痞":"疒","劈":"刀","噼":"口","霹":"雨","砒":"石","丕":"一","伾":"亻","批":"扌","邳":"阝","坯":"土","披":"扌","徧":"彳","骈":"马","胼":"月","蹁":"足","骗":"马","片":"片","谝":"讠","偏":"亻","犏":"牜","篇":"竹","翩":"羽","瓢":"瓜","嫖":"女","票":"示","嘌":"口","殍":"歹","瞟":"目","莩":"艹","剽":"刂","漂":"氵","缥":"纟","飘":"风","螵":"虫","撇":"扌","苤":"艹","瞥":"目","氕":"气","颦":"页","贫":"贝","嫔":"女","频":"页","牝":"牜","聘":"耳","品":"口","榀":"木","姘":"女","拼":"扌","拚":"扌","鲆":"鱼","平":"干","评":"讠","凭":"几","坪":"土","苹":"艹","屏":"尸","枰":"木","洴":"氵","瓶":"瓦","萍":"艹","俜":"亻","乒":"丿","娉":"女","婆":"女","鄱":"阝","皤":"白","迫":"辶","珀":"王","魄":"鬼","粕":"米","破":"石","叵":"口","钷":"钅","笸":"竹","钋":"钅","坡":"土","泼":"氵","颇":"页","掊":"扌","裒":"衣","剖":"刂","仆":"亻","镤":"钅","蒲":"艹","璞":"王","濮":"氵","匍":"勹","莆":"艹","菩":"艹","葡":"艹","脯":"月","铺":"钅","曝":"日","氆":"毛","镨":"钅","蹼":"足","朴":"木","圃":"囗","埔":"土","浦":"氵","普":"日","溥":"氵","谱":"讠","噗":"口","扑":"扌","亓":"二","祁":"礻","齐":"齐","圻":"土","岐":"山","芪":"艹","其":"八","奇":"大","歧":"止","淇":"氵","祈":"礻","耆":"聅","脐":"月","颀":"页","崎":"山","旗":"方","綦":"糸","畦":"田","萁":"艹","骐":"马","骑":"马","棋":"木","琦":"王","琪":"王","祺":"礻","蛴":"虫","麒":"鹿","蜞":"虫","蕲":"艹","荠":"艹","鳍":"鱼","鍂":"釒","器":"口","憩":"心","葺":"艹","碛":"石","气":"气","讫":"讠","汔":"氵","迄":"辶","弃":"廾","汽":"氵","泣":"氵","契":"大","砌":"石","槭":"木","起":"走","绮":"纟","乞":"乙","企":"人","屺":"山","岂":"山","芑":"艹","启":"口","杞":"木","綮":"糸","漆":"氵","嘁":"口","蹊":"足","七":"一","沏":"氵","妻":"女","柒":"木","凄":"冫","栖":"木","桤":"木","戚":"戈","萋":"艹","期":"月","欺":"欠","髂":"骨","恰":"忄","洽":"氵","掐":"扌","葜":"艹","箝":"竹","潜":"氵","黔":"黑","虔":"虍","钱":"钅","钳":"钅","乾":"乙","掮":"扌","前":"刂","荨":"艹","钤":"钅","欠":"欠","芡":"艹","茜":"艹","倩":"亻","堑":"土","歉":"欠","嵌":"山","椠":"木","遣":"辶","谴":"讠","缱":"纟","浅":"氵","肷":"月","褰":"衣","钎":"钅","牵":"牛","悭":"忄","铅":"钅","谦":"讠","搴":"手","愆":"心","签":"竹","骞":"马","千":"十","仟":"亻","阡":"阝","扦":"扌","芊":"艹","迁":"辶","佥":"人","岍":"山","强":"弓","墙":"土","嫱":"女","蔷":"艹","樯":"木","炝":"火","呛":"口","抢":"扌","羟":"羊","襁":"衤","羌":"羊","戕":"戈","戗":"戈","枪":"木","锵":"钅","镪":"钅","跄":"足","腔":"月","蜣":"虫","锖":"钅","鸧":"鸟","乔":"丿","侨":"亻","荞":"艹","桥":"木","谯":"讠","鞒":"革","樵":"木","瞧":"目","憔":"忄","峤":"山","鞘":"革","俏":"亻","诮":"讠","峭":"山","窍":"穴","翘":"羽","撬":"扌","偢":"亻","巧":"工","愀":"忄","橇":"木","缲":"纟","悄":"忄","硗":"石","跷":"足","鄡":"阝","劁":"刂","敲":"攴","锹":"钅","茄":"艹","惬":"忄","妾":"女","怯":"忄","窃":"穴","挈":"手","箧":"竹","锲":"钅","慊":"忄","鄐":"阝","郄":"阝","且":"一","切":"刀","琴":"王","芩":"艹","芹":"艹","秦":"禾","禽":"忄","勤":"力","嗪":"口","溱":"氵","噙":"口","擒":"扌","檎":"木","螓":"虫","儭":"亻","吣":"口","揿":"扌","沁":"氵","锓":"钅","寝":"宀","亲":"亠","侵":"亻","钦":"钅","衾":"衣","嵚":"山","情":"忄","晴":"日","氰":"气","擎":"手","檠":"木","黥":"黑","磬":"石","罄":"缶","庆":"广","箐":"竹","苘":"艹","顷":"页","请":"讠","謦":"言","青":"青","氢":"气","轻":"车","倾":"亻","卿":"卩","圊":"囗","清":"氵","蜻":"虫","鲭":"鱼","跫":"足","銎":"金","琼":"王","蛩":"虫","邛":"阝","穷":"穴","穹":"穴","茕":"艹","筇":"竹","囚":"囗","犰":"犭","酋":"酉","求":"水","虬":"虫","泅":"氵","俅":"亻","鼽":"鼻","遒":"辶","裘":"衣","逑":"辶","球":"王","赇":"贝","巯":"工","糗":"米","逎":"辶","鳅":"鱼","楸":"木","蚯":"虫","秋":"禾","丘":"丿","邱":"阝","湫":"氵","瞿":"目","癯":"疒","衢":"行","璩":"王","鸲":"鸟","渠":"氵","劬":"力","朐":"月","蠼":"虫","蕖":"艹","磲":"石","蘧":"艹","氍":"毛","阒":"门","觑":"见","趣":"走","去":"厶","龋":"齿","取":"又","娶":"女","曲":"曰","岖":"山","诎":"讠","驱":"马","屈":"尸","祛":"礻","蛆":"虫","躯":"身","蛐":"虫","趋":"走","麴":"麦","黢":"黑","区":"匚","痊":"疒","铨":"钅","筌":"竹","颧":"页","蜷":"虫","醛":"酉","鬈":"髟","全":"入","权":"木","诠":"讠","泉":"水","荃":"艹","拳":"手","辁":"车","劝":"力","券":"刀","畎":"田","绻":"纟","犬":"犬","悛":"忄","圈":"囗","瘸":"疒","却":"卩","阕":"门","悫":"心","雀":"隹","确":"石","阙":"门","鹊":"鸟","榷":"木","炔":"火","缺":"缶","裙":"衤","群":"羊","逡":"辶","蚺":"虫","然":"灬","髯":"髟","燃":"火","冉":"冂","苒":"艹","染":"木","禳":"礻","瓤":"瓜","穰":"禾","让":"讠","嚷":"口","壤":"土","攘":"扌","荛":"艹","饶":"饣","桡":"木","娆":"女","绕":"纟","扰":"扌","热":"灬","惹":"心","仁":"亻","壬":"士","人":"人","衽":"衤","刃":"刀","认":"讠","仞":"亻","讱":"讠","任":"亻","纫":"纟","妊":"女","轫":"车","韧":"韦","饪":"饣","忍":"心","荏":"艹","稔":"禾","仍":"亻","礽":"礻","扔":"扌","日":"日","戎":"戈","肜":"月","狨":"犭","绒":"纟","茸":"艹","荣":"艹","容":"宀","嵘":"山","熔":"火","蝾":"虫","融":"虫","溶":"氵","蓉":"艹","榕":"木","閒":"钅","冗":"冖","柔":"木","揉":"扌","蹂":"足","鞣":"革","糅":"米","肉":"肉","儒":"亻","如":"女","茹":"艹","铷":"钅","孺":"子","濡":"氵","薷":"艹","襦":"衤","蠕":"虫","颥":"页","嚅":"口","入":"入","洳":"氵","溽":"氵","缛":"纟","蓐":"艹","褥":"衤","汝":"氵","乳":"乙","辱":"辰","鄏":"阝","阮":"阝","朊":"月","软":"车","蕤":"艹","芮":"艹","枘":"木","蚋":"虫","锐":"钅","瑞":"王","睿":"目","蕊":"艹","闰":"门","润":"氵","若":"艹","偌":"亻","弱":"弓","箬":"竹","飒":"风","脎":"月","萨":"艹","卅":"十","洒":"氵","仨":"亻","撒":"扌","赛":"贝","塞":"土","腮":"月","噻":"口","鳃":"鱼","散":"攵","馓":"饣","伞":"人","三":"一","叁":"厶","毵":"毛","彡":"彡","丧":"一","嗓":"口","搡":"扌","磉":"石","颡":"页","桑":"木","臊":"月","瘙":"疒","扫":"扌","嫂":"女","搔":"扌","骚":"马","缫":"纟","色":"色","涩":"氵","啬":"口","铯":"钅","瑟":"王","穑":"禾","森":"木","僧":"亻","啥":"口","唼":"口","歃":"欠","煞":"灬","霎":"雨","厦":"厂","傻":"亻","鲨":"鱼","杀":"木","沙":"氵","纱":"纟","刹":"刂","砂":"石","裟":"衣","莎":"艹","铩":"钅","痧":"疒","晒":"日","筛":"竹","酾":"酉","讪":"讠","汕":"氵","疝":"疒","扇":"户","善":"口","骟":"马","鄯":"阝","缮":"纟","嬗":"女","擅":"扌","膳":"月","赡":"贝","蟮":"虫","鳝":"鱼","闪":"门","陕":"阝","栅":"木","珊":"王","舢":"舟","潸":"氵","膻":"月","苫":"艹","山":"山","删":"刂","杉":"木","芟":"艹","姗":"女","衫":"衤","钐":"钅","埏":"土","跚":"足","煽":"火","穇":"禾","裳":"衣","尚":"小","绱":"纟","上":"一","垧":"土","晌":"日","赏":"贝","熵":"火","伤":"亻","殇":"歹","商":"口","觞":"角","墒":"土","韶":"音","勺":"勹","芍":"艹","杓":"木","劭":"力","邵":"阝","绍":"纟","哨":"口","潲":"氵","少":"小","稍":"禾","筲":"竹","艄":"舟","蛸":"虫","捎":"扌","梢":"木","烧":"火","舌":"舌","佘":"人","蛇":"虫","折":"扌","摄":"扌","滠":"氵","赦":"赤","慑":"忄","厍":"厂","设":"讠","社":"礻","射":"寸","涉":"氵","麝":"鹿","舍":"舌","奢":"大","猞":"犭","赊":"贝","畲":"田","神":"礻","肾":"月","甚":"甘","胂":"月","渗":"氵","慎":"忄","蜃":"虫","葚":"艹","谂":"讠","婶":"女","沈":"氵","审":"宀","哂":"口","矧":"矢","娠":"女","深":"氵","申":"田","伸":"亻","身":"身","侁":"亻","呻":"口","绅":"纟","诜":"讠","珅":"王","砷":"石","莘":"艹","糁":"米","绳":"纟","圣":"土","晟":"日","盛":"皿","剩":"刂","胜":"月","嵊":"山","省":"目","眚":"目","笙":"竹","甥":"生","升":"十","生":"生","声":"士","牲":"牜","匙":"匕","时":"日","十":"十","什":"亻","石":"石","鲥":"鱼","识":"讠","实":"宀","拾":"扌","蚀":"虫","食":"食","埘":"土","誓":"言","奭":"大","噬":"口","弑":"木","谥":"讠","释":"采","嗜":"口","筮":"竹","柿":"木","舐":"舌","轼":"车","逝":"辶","铈":"钅","贳":"贝","适":"辶","式":"弋","士":"士","氏":"氏","世":"一","仕":"亻","市":"巾","示":"示","事":"亅","侍":"亻","势":"力","视":"见","试":"讠","饰":"饣","室":"宀","恃":"忄","拭":"扌","是":"日","史":"口","矢":"矢","豕":"豕","使":"亻","始":"女","驶":"马","尸":"尸","失":"大","师":"巾","虱":"虫","诗":"讠","施":"方","狮":"犭","湿":"氵","蓍":"艹","寿":"寸","受":"又","狩":"犭","兽":"乺","售":"口","授":"扌","绶":"纟","瘦":"疒","守":"宀","首":"首","艏":"舟","手":"手","收":"攵","秫":"禾","孰":"子","赎":"贝","塾":"土","熟":"灬","腧":"月","墅":"土","漱":"氵","澍":"氵","术":"木","戍":"戈","束":"木","沭":"氵","述":"辶","树":"木","竖":"立","恕":"心","庶":"广","数":"攵","暑":"日","黍":"黍","署":"罒","鼠":"鼠","蜀":"虫","薯":"艹","曙":"日","属":"尸","蔬":"艹","书":"乛","殳":"殳","抒":"扌","纾":"纟","叔":"又","枢":"木","姝":"女","倏":"亻","殊":"歹","梳":"木","淑":"氵","菽":"艹","鄃":"阝","疏":"疋","舒":"舌","摅":"扌","毹":"毛","输":"车","耍":"而","刷":"刂","唰":"口","帅":"巾","蟀":"虫","甩":"用","衰":"衣","摔":"扌","涮":"氵","闩":"门","拴":"扌","栓":"木","爽":"爻","孀":"女","双":"又","霜":"雨","谁":"讠","税":"禾","睡":"目","水":"水","顺":"页","舜":"夕","瞬":"目","吮":"口","槊":"木","搠":"扌","蒴":"艹","妁":"女","烁":"火","朔":"月","铄":"钅","硕":"石","说":"讠","笥":"竹","耜":"耒","嗣":"口","肆":"聿","巳":"巳","四":"囗","寺":"寸","汜":"氵","伺":"亻","似":"亻","兕":"儿","姒":"女","祀":"礻","泗":"氵","饲":"饣","驷":"马","俟":"亻","死":"歹","厮":"厂","锶":"钅","嘶":"口","撕":"扌","澌":"氵","思":"心","鸶":"鸟","斯":"斤","缌":"纟","蛳":"虫","厶":"厶","丝":"一","司":"口","私":"禾","咝":"口","讼":"讠","宋":"宀","诵":"讠","送":"辶","颂":"页","怂":"心","悚":"忄","耸":"耳","竦":"立","忪":"忄","松":"木","娀":"女","凇":"冫","淞":"氵","菘":"艹","嵩":"山","嗽":"口","叟":"又","嗾":"口","瞍":"目","擞":"扌","薮":"艹","嗖":"口","搜":"扌","溲":"氵","馊":"饣","飕":"风","锼":"钅","艘":"舟","螋":"虫","俗":"亻","夙":"夕","诉":"讠","肃":"聿","涑":"氵","素":"糸","速":"辶","僳":"亻","粟":"米","谡":"讠","嗉":"口","塑":"土","愫":"忄","溯":"氵","簌":"竹","蔌":"艹","觫":"角","玹":"玉","苏":"艹","酥":"酉","稣":"禾","蒜":"艹","算":"竹","狻":"犭","酸":"酉","绥":"纟","隋":"阝","随":"阝","遂":"辶","谇":"讠","岁":"山","祟":"示","碎":"石","隧":"阝","穗":"禾","邃":"辶","燧":"火","髓":"骨","濉":"氵","虽":"虫","荽":"艹","眭":"目","睢":"目","损":"扌","笋":"竹","隼":"隹","榫":"木","孙":"子","狲":"犭","荪":"艹","飧":"飠","所":"户","唢":"口","索":"糸","琐":"王","锁":"钅","唆":"口","娑":"女","挲":"手","桫":"木","梭":"木","睃":"目","嗦":"口","羧":"羊","蓑":"艹","缩":"纟","嗍":"口","沓":"水","榻":"木","踏":"足","蹋":"足","挞":"扌","闼":"门","鳎":"鱼","塔":"土","獭":"犭","溻":"氵","趿":"足","铊":"钅","塌":"土","遢":"辶","他":"亻","它":"宀","她":"女","薹":"艹","台":"口","邰":"阝","抬":"扌","苔":"艹","炱":"火","鲐":"鱼","太":"大","汰":"氵","态":"心","肽":"月","钛":"钅","泰":"水","酞":"酉","呔":"口","漦":"水","胎":"月","坛":"土","昙":"日","谈":"讠","郯":"阝","覃":"覀","痰":"疒","锬":"钅","谭":"讠","潭":"氵","檀":"木","镡":"钅","叹":"口","炭":"火","碳":"石","探":"扌","忐":"心","坦":"土","袒":"衤","钽":"钅","毯":"毛","摊":"扌","滩":"氵","坍":"土","贪":"贝","瘫":"疒","塘":"土","瑭":"王","膛":"月","糖":"米","螗":"虫","螳":"虫","醣":"酉","樘":"木","镗":"钅","饧":"饣","搪":"扌","溏":"氵","唐":"口","堂":"土","棠":"木","烫":"火","趟":"走","帑":"巾","倘":"亻","淌":"氵","傥":"亻","躺":"身","耥":"耒","汤":"氵","铴":"钅","羰":"羊","檮":"木","洮":"氵","逃":"辶","桃":"木","陶":"阝","啕":"口","梼":"木","淘":"氵","萄":"艹","鼗":"鼓","套":"大","讨":"讠","饕":"飠","弢":"弓","涛":"氵","绦":"纟","掏":"扌","慆":"忄","滔":"氵","韬":"韦","焘":"灬","忑":"心","特":"牜","铽":"钅","慝":"心","疼":"疒","腾":"月","誊":"言","滕":"水","藤":"艹","绨":"纟","啼":"口","缇":"纟","鹈":"鸟","题":"页","蹄":"足","醍":"酉","提":"扌","屉":"尸","剃":"刂","倜":"亻","悌":"忄","涕":"氵","逖":"辶","惕":"忄","替":"曰","裼":"衤","嚏":"口","体":"亻","剔":"刂","梯":"木","锑":"钅","踢":"足","甜":"甘","填":"土","阗":"门","田":"田","恬":"忄","畋":"田","瞋":"目","掭":"扌","忝":"小","殄":"歹","腆":"月","舔":"舌","渓":"氵","天":"大","添":"氵","条":"木","迢":"辶","笤":"竹","龆":"齿","蜩":"虫","髫":"髟","鲦":"鱼","苕":"艹","眺":"目","粜":"米","跳":"足","窕":"穴","挑":"扌","祧":"礻","佻":"亻","餮":"飠","铁":"钅","贴":"贝","萜":"艹","帖":"巾","廷":"廴","亭":"亠","庭":"广","莛":"艹","停":"亻","婷":"女","霆":"雨","葶":"艹","蜓":"虫","艇":"舟","挺":"扌","梃":"木","烃":"火","厅":"厂","汀":"氵","听":"口","酮":"酉","僮":"亻","砼":"石","铜":"钅","童":"立","桐":"木","仝":"人","同":"口","佟":"亻","彤":"彡","茼":"艹","潼":"氵","瞳":"目","恸":"忄","痛":"疒","统":"纟","捅":"扌","桶":"木","筒":"竹","通":"辶","头":"大","投":"扌","骰":"骨","透":"辶","钭":"钅","偷":"亻","涂":"氵","荼":"艹","途":"辶","屠":"尸","徒":"彳","酴":"酉","菟":"艹","图":"囗","凃":"冫","兔":"儿","堍":"土","土":"土","吐":"口","钍":"钅","凸":"凵","秃":"禾","突":"穴","团":"囗","抟":"扌","彖":"彑","疃":"田","湍":"氵","颓":"页","退":"辶","煺":"火","蜕":"虫","褪":"衤","腿":"月","推":"扌","忒":"心","屯":"屮","饨":"饣","豚":"豕","臀":"月","氽":"水","吞":"口","暾":"日","鸵":"鸟","跎":"足","酡":"酉","驮":"马","佗":"亻","陀":"阝","坨":"土","沱":"氵","驼":"马","柁":"木","砣":"石","鼍":"黽","橐":"木","牠":"牜","拓":"扌","柝":"木","唾":"口","箨":"竹","妥":"女","庹":"广","椭":"木","乇":"丿","托":"扌","拖":"扌","脱":"月","棁":"木","哇":"口","娃":"女","腽":"月","袜":"衤","瓦":"瓦","佤":"亻","挖":"扌","洼":"氵","娲":"女","蛙":"虫","外":"夕","崴":"山","歪":"止","玩":"王","丸":"丿","纨":"纟","芄":"艹","完":"宀","顽":"页","烷":"火","万":"一","腕":"月","挽":"扌","晚":"日","莞":"艹","婉":"女","惋":"忄","宛":"宀","绾":"纟","脘":"月","菀":"艹","琬":"王","皖":"白","畹":"田","碗":"石","弯":"弓","剜":"刂","湾":"氵","蜿":"虫","豌":"豆","亡":"亠","王":"王","妄":"女","忘":"心","旺":"日","望":"月","魍":"鬼","网":"网","往":"彳","枉":"木","罔":"网","惘":"忄","辋":"车","汪":"氵","为":"丶","韦":"韦","围":"囗","帏":"巾","沩":"氵","违":"辶","闱":"门","桅":"木","涠":"氵","唯":"口","帷":"巾","惟":"忄","维":"纟","嵬":"山","湋":"氵","潍":"氵","卫":"卩","未":"木","位":"亻","味":"口","畏":"田","胃":"月","尉":"寸","谓":"讠","喂":"口","渭":"氵","猬":"犭","蔚":"艹","慰":"心","魏":"鬼","鲔":"鱼","萎":"艹","隗":"阝","猥":"犭","痿":"疒","艉":"舟","韪":"韦","伟":"亻","伪":"亻","尾":"尸","纬":"纟","苇":"艹","委":"女","炜":"火","玮":"王","洧":"氵","娓":"女","诿":"讠","蒵":"艹","薇":"艹","巍":"山","葳":"艹","微":"彳","煨":"火","危":"厄","威":"女","偎":"亻","逶":"辶","隈":"阝","文":"文","纹":"纟","闻":"门","蚊":"虫","阌":"门","雯":"雨","汶":"氵","问":"门","璺":"玉","刎":"刂","吻":"口","紊":"糸","稳":"禾","瘟":"疒","温":"氵","缊":"纟","瓮":"瓦","蕹":"艹","蓊":"艹","翁":"羽","嗡":"口","涴":"氵","龌":"齿","沃":"氵","肟":"月","卧":"卜","偓":"亻","幄":"巾","握":"扌","渥":"氵","硪":"石","斡":"斗","我":"戈","喔":"口","窝":"穴","蜗":"虫","挝":"扌","倭":"亻","涡":"氵","莴":"艹","梧":"木","浯":"氵","蜈":"虫","鼯":"鼠","无":"无","毋":"毋","吴":"口","吾":"口","芜":"艹","鄋":"阝","坞":"土","勿":"勹","务":"力","戊":"戈","阢":"阝","杌":"木","芴":"艹","物":"牜","误":"讠","悟":"忄","晤":"日","焐":"火","婺":"女","痦":"疒","骛":"马","雾":"雨","寤":"宀","鹜":"鸟","鋈":"金","抧":"扌","鹉":"鸟","舞":"夕","侮":"亻","捂":"扌","牾":"牜","珷":"王","妩":"女","庑":"广","忤":"忄","怃":"忄","迕":"辶","武":"止","五":"二","午":"十","仵":"亻","伍":"亻","兀":"儿","乌":"丿","圬":"土","污":"氵","邬":"阝","呜":"口","巫":"工","屋":"尸","诬":"讠","钨":"钅","习":"乙","席":"巾","袭":"衣","觋":"见","媳":"女","隰":"阝","檄":"木","戏":"戈","系":"糸","饩":"饣","细":"纟","阋":"门","舄":"臼","隙":"阝","禊":"礻","洗":"氵","玺":"玉","徙":"彳","铣":"钅","喜":"口","禧":"礻","葸":"艹","屣":"尸","蓰":"艹","鼷":"鼠","曦":"日","醯":"酉","蟋":"虫","熹":"灬","羲":"羊","螅":"虫","蜥":"虫","豨":"谷","嘻":"口","嬉":"女","膝":"月","樨":"木","歙":"欠","悉":"心","惜":"忄","欷":"欠","淅":"氵","烯":"火","硒":"石","菥":"艹","傒":"亻","晰":"日","溪":"氵","皙":"白","锡":"钅","僖":"亻","熄":"火","熙":"灬","犀":"牛","稀":"禾","粞":"米","翕":"羽","舾":"舟","夕":"夕","兮":"八","汐":"氵","西":"西","吸":"口","希":"巾","昔":"日","析":"木","矽":"石","穸":"穴","郗":"阝","唏":"口","奚":"大","娭":"女","息":"心","晞":"日","浠":"氵","牺":"牜","鱚":"魚","爋":"火","抭":"扌","詃":"言","郺":"阝","峡":"山","柙":"木","狭":"犭","硖":"石","遐":"辶","暇":"日","瑕":"王","辖":"车","匣":"匚","侠":"亻","狎":"犭","霞":"雨","黠":"黑","下":"一","吓":"口","夏":"夂","罅":"缶","瞎":"目","虾":"虫","伭":"亻","闲":"门","弦":"弓","贤":"贝","咸":"口","涎":"氵","娴":"女","舷":"舟","衔":"行","痫":"疒","鹇":"鸟","嫌":"女","腺":"月","陷":"阝","馅":"饣","缐":"纟","羡":"羊","献":"犬","县":"厶","岘":"山","苋":"艹","现":"王","线":"纟","限":"阝","宪":"宀","霰":"雨","藓":"艹","燹":"火","冼":"冫","显":"日","险":"阝","猃":"犭","蚬":"虫","筅":"竹","跣":"足","祆":"礻","纤":"纟","氙":"气","籼":"米","莶":"艹","掀":"扌","跹":"足","酰":"酉","锨":"钅","鲜":"鱼","暹":"日","仙":"亻","先":"儿","详":"讠","庠":"广","祥":"礻","翔":"羽","向":"口","巷":"巳","项":"页","象":"豕","橡":"木","蟓":"虫","像":"亻","鲞":"鱼","享":"亠","响":"口","饷":"饣","飨":"飠","想":"心","湘":"氵","缃":"纟","葙":"艹","箱":"竹","襄":"衣","骧":"马","镶":"钅","乡":"乙","芗":"艹","相":"目","香":"香","厢":"厂","崤":"山","淆":"氵","孝":"子","效":"攵","校":"木","笑":"竹","啸":"口","小":"小","晓":"日","筱":"竹","肖":"月","哮":"口","嚣":"口","萧":"艹","哓":"口","枵":"木","骁":"马","宵":"宀","消":"氵","绡":"纟","逍":"辶","霄":"雨","魈":"鬼","销":"钅","潇":"氵","箫":"竹","硝":"石","枭":"木","协":"十","邪":"阝","胁":"月","偕":"亻","斜":"斗","谐":"讠","携":"扌","勰":"力","撷":"扌","缬":"纟","鞋":"革","泄":"氵","泻":"氵","屑":"尸","偰":"亻","械":"木","绁":"纟","卸":"卩","洩":"氵","渫":"氵","亵":"亠","谢":"讠","榍":"木","榭":"木","廨":"广","懈":"忄","獬":"犭","薤":"艹","邂":"辶","燮":"火","瀣":"氵","蟹":"虫","躞":"足","写":"冖","些":"二","楔":"木","歇":"欠","蝎":"虫","囟":"囗","信":"亻","衅":"血","锌":"钅","新":"斤","歆":"欠","薪":"艹","馨":"香","鑫":"金","心":"心","忻":"忄","芯":"艹","辛":"辛","昕":"日","欣":"欠","刑":"刂","行":"行","邢":"阝","形":"彡","陉":"阝","型":"土","硎":"石","杏":"木","姓":"女","幸":"干","性":"忄","荇":"艹","婞":"女","悻":"忄","醒":"酉","擤":"扌","腥":"月","兴":"八","星":"日","惺":"忄","猩":"犭","雄":"隹","熊":"灬","胸":"月","凶":"凵","兄":"儿","匈":"勹","芎":"艹","讻":"讠","汹":"氵","嗅":"口","秀":"禾","岫":"山","绣":"纟","袖":"衤","锈":"钅","溴":"氵","琹":"王","朽":"木","宿":"宀","休":"亻","鸺":"鸟","貅":"豸","馐":"饣","髹":"髟","羞":"羊","修":"亻","咻":"口","庥":"广","訏":"言","蓿":"艹","徐":"彳","煦":"灬","蓄":"艹","洫":"氵","勖":"力","绪":"纟","续":"纟","酗":"酉","婿":"女","溆":"氵","絮":"糸","旭":"日","序":"广","叙":"又","恤":"忄","滀":"氵","糈":"米","醑":"酉","许":"讠","诩":"讠","栩":"木","圩":"土","胥":"月","须":"页","墟":"土","顼":"页","虚":"虍","嘘":"口","需":"雨","戌":"戈","盱":"目","歨":"欠","繻":"糹","痃":"疒","悬":"心","旋":"方","漩":"氵","璇":"王","玄":"玄","泫":"氵","炫":"火","绚":"纟","眩":"目","铉":"钅","渲":"氵","楦":"木","碹":"石","镟":"钅","癣":"疒","选":"辶","暄":"日","煊":"火","儇":"亻","轩":"车","宣":"宀","谖":"讠","喧":"口","揎":"扌","萱":"艹","噱":"口","学":"子","泶":"水","踅":"足","穴":"穴","血":"血","谑":"讠","雪":"雨","鳕":"鱼","靴":"革","薛":"艹","削":"刂","询":"讠","峋":"山","恂":"忄","洵":"氵","浔":"氵","紃":"糹","荀":"艹","珣":"王","循":"彳","鄩":"阝","鲟":"鱼","寻":"寸","巡":"巛","旬":"日","郇":"阝","浚":"氵","驯":"马","徇":"彳","逊":"辶","殉":"歹","巽":"巳","蕈":"艹","训":"讠","讯":"讠","汛":"氵","迅":"辶","勋":"力","埙":"土","熏":"灬","窨":"穴","獯":"犭","薰":"艹","曛":"日","醺":"酉","呀":"口","牙":"牙","伢":"亻","岈":"山","芽":"艹","厓":"弒","琊":"王","蚜":"虫","崖":"山","涯":"氵","睚":"目","衙":"行","氩":"气","娅":"女","砑":"石","揠":"扌","亚":"二","讶":"讠","迓":"辶","疋":"疋","哑":"口","雅":"隹","押":"扌","鸦":"鸟","桠":"木","鸭":"鸟","垭":"土","丫":"丨","压":"厂","延":"廴","闫":"门","严":"一","妍":"女","盐":"皿","言":"言","岩":"山","沿":"氵","炎":"火","研":"石","颜":"页","檐":"木","蜒":"虫","阎":"门","阽":"阝","筵":"竹","谚":"讠","滟":"氵","酽":"酉","谳":"讠","餍":"厂","厌":"厂","彦":"彡","砚":"石","唁":"口","宴":"宀","晏":"日","艳":"色","验":"马","燕":"灬","赝":"贝","堰":"土","焰":"火","焱":"火","雁":"隹","鼹":"鼠","衍":"行","偃":"亻","厣":"厂","掩":"扌","眼":"目","郾":"阝","琰":"王","罨":"罒","魇":"鬼","演":"氵","兖":"亠","奄":"大","俨":"亻","匽":"匚","剡":"刂","咽":"口","恹":"忄","烟":"火","胭":"月","崦":"山","淹":"氵","焉":"灬","菸":"艹","阉":"门","湮":"氵","腌":"月","鄢":"阝","嫣":"女","扬":"扌","羊":"羊","阳":"阝","杨":"木","炀":"火","佯":"亻","疡":"疒","徉":"彳","洋":"氵","昫":"日","烊":"火","蛘":"虫","卬":"卩","漾":"氵","怏":"忄","恙":"心","样":"木","仰":"亻","养":"乺","氧":"气","痒":"疒","秧":"禾","鸯":"鸟","鞅":"革","泱":"氵","殃":"歹","央":"大","爻":"爻","尧":"兀","肴":"月","姚":"女","珧":"王","窑":"穴","傜":"亻","谣":"讠","徭":"彳","摇":"扌","遥":"辶","鳐":"鱼","瑶":"王","繇":"糸","轺":"车","铫":"钅","侥":"亻","曜":"日","耀":"羽","药":"艹","要":"覀","鹞":"鸟","钥":"钅","杳":"木","咬":"口","窈":"穴","舀":"臼","腰":"月","邀":"辶","幺":"幺","夭":"大","吆":"口","妖":"女","爷":"父","揶":"扌","铘":"钅","靥":"面","业":"业","叶":"口","曳":"曰","页":"页","邺":"阝","夜":"夕","晔":"日","烨":"火","掖":"扌","液":"氵","谒":"讠","腋":"月","黦":"黑","冶":"冫","野":"里","也":"乙","耶":"耳","椰":"木","噎":"口","沂":"氵","诒":"讠","宜":"宀","怡":"忄","仪":"亻","圯":"土","夷":"大","荑":"艹","贻":"贝","饴":"饣","咦":"口","姨":"女","眙":"目","胰":"月","痍":"疒","移":"禾","彝":"彑","遗":"辶","颐":"页","疑":"疋","嶷":"山","疫":"疒","羿":"羽","轶":"车","绎":"纟","诣":"讠","驿":"马","奕":"大","弈":"廾","译":"讠","邑":"邑","佾":"亻","峄":"山","怿":"忄","易":"日","意":"心","溢":"氵","悒":"忄","挹":"扌","益":"皿","谊":"讠","埸":"土","翊":"羽","翌":"羽","逸":"辶","镒":"钅","薏":"艹","翳":"羽","翼":"羽","臆":"月","癔":"疒","镱":"钅","缢":"纟","蜴":"虫","肄":"聿","裔":"衣","瘗":"疒","毅":"殳","熠":"火","劓":"刂","殪":"歹","懿":"心","义":"丶","亿":"亻","弋":"弋","刈":"刂","忆":"忄","艺":"艹","仡":"亻","议":"讠","亦":"亠","屹":"山","异":"廾","佚":"亻","呓":"口","役":"彳","抑":"扌","燿":"火","旖":"方","舣":"舟","蚁":"虫","倚":"亻","椅":"木","乙":"乙","已":"己","以":"人","钇":"钅","佁":"亻","矣":"矢","苡":"艹","迤":"辶","酏":"酉","黟":"黑","咿":"口","猗":"犭","伊":"亻","衣":"衣","医":"匚","依":"亻","祎":"礻","铱":"钅","壹":"士","揖":"扌","欹":"大","漪":"氵","噫":"口","一":"一","吟":"口","垠":"土","狺":"犭","寅":"宀","淫":"氵","银":"钅","鄞":"阝","夤":"夕","龈":"齿","霪":"雨","印":"卩","茚":"艹","胤":"月","尹":"尸","引":"弓","吲":"口","饮":"饣","蚓":"虫","隐":"阝","瘾":"疒","因":"囗","阴":"阝","姻":"女","洇":"氵","茵":"艹","荫":"艹","音":"音","殷":"殳","氤":"气","铟":"钅","喑":"口","堙":"土","赢":"贝","迎":"辶","茔":"艹","盈":"皿","荥":"艹","荧":"艹","莹":"艹","萤":"艹","营":"艹","萦":"艹","楹":"木","滢":"氵","蓥":"艹","潆":"氵","蝇":"虫","嬴":"女","瀛":"氵","映":"日","硬":"石","媵":"女","颍":"页","颖":"页","影":"彡","瘿":"疒","郢":"阝","樱":"木","璎":"王","应":"广","英":"艹","莺":"艹","婴":"女","鹦":"鸟","膺":"月","鹰":"鸟","瑛":"王","嘤":"口","撄":"扌","缨":"纟","罂":"缶","哟":"口","唷":"口","喁":"口","用":"用","佣":"亻","永":"水","甬":"用","咏":"口","泳":"氵","俑":"亻","勇":"力","涌":"氵","恿":"心","蛹":"虫","踊":"足","饔":"飠","拥":"扌","痈":"疒","邕":"邑","庸":"广","鄘":"阝","雍":"隹","墉":"土","慵":"忄","壅":"土","镛":"钅","臃":"月","鳙":"鱼","疣":"疒","尢":"尢","尤":"尢","由":"田","犹":"犭","邮":"阝","油":"氵","莜":"艹","铀":"钅","蚰":"虫","游":"氵","鱿":"鱼","猷":"犬","莸":"艹","蝣":"虫","蝤":"虫","又":"又","右":"口","幼":"幺","佑":"亻","侑":"亻","祐":"礻","诱":"讠","蚴":"虫","柚":"木","囿":"囗","宥":"宀","釉":"采","鼬":"鼠","脩":"月","莠":"艹","友":"又","有":"月","卣":"卜","酉":"酉","羑":"羊","铕":"钅","牖":"片","黝":"黑","幽":"幺","悠":"心","优":"亻","忧":"忄","攸":"攵","呦":"口","渝":"氵","于":"二","邘":"阝","余":"人","妤":"女","欤":"欠","玙":"王","於":"方","盂":"皿","臾":"臼","鱼":"鱼","俞":"人","禺":"忄","竽":"竹","舁":"臼","娱":"女","狳":"犭","谀":"讠","馀":"饣","渔":"氵","萸":"艹","隅":"阝","雩":"雨","嵛":"山","愉":"忄","揄":"扌","腴":"月","逾":"辶","愚":"心","榆":"木","瑜":"王","虞":"虍","觎":"见","窬":"穴","舆":"臼","蝓":"虫","鐍":"釒","渦":"氵","喻":"口","寓":"宀","御":"彳","裕":"衤","遇":"辶","鹆":"鸟","愈":"心","煜":"火","峪":"山","浴":"氵","钰":"钅","预":"页","域":"土","欲":"欠","谕":"讠","阈":"门","玉":"玉","驭":"马","吁":"口","聿":"聿","芋":"艹","妪":"女","饫":"饣","育":"月","郁":"阝","彧":"彡","昱":"日","狱":"犭","蜮":"虫","蓣":"艹","誉":"言","毓":"母","燠":"火","鹬":"鸟","豫":"豕","鬻":"鬲","予":"亅","与":"一","伛":"亻","宇":"宀","屿":"山","羽":"羽","雨":"雨","俣":"亻","禹":"忄","语":"讠","圄":"囗","圉":"囗","庾":"广","鄅":"阝","瘐":"疒","窳":"穴","龉":"齿","瘀":"疒","纡":"纟","迂":"辶","淤":"氵","元":"儿","员":"口","园":"囗","沅":"氵","橼":"木","螈":"虫","媛":"女","垣":"土","爰":"爫","原":"厂","圆":"囗","袁":"衣","援":"扌","缘":"纟","鼋":"黽","塬":"土","源":"氵","猿":"犭","辕":"车","芫":"艹","瑗":"王","愿":"心","苑":"艹","怨":"心","院":"阝","远":"辶","箢":"竹","渊":"氵","鸢":"鸟","冤":"冖","眢":"目","鸳":"鸟","哕":"口","悦":"忄","钺":"钅","阅":"门","跃":"足","粤":"米","越":"走","樾":"木","龠":"龠","瀹":"氵","月":"月","刖":"刂","岳":"山","曰":"曰","约":"纟","泇":"氵","纭":"纟","芸":"艹","昀":"日","云":"二","匀":"勹","妘":"女","郧":"阝","耘":"耒","酝":"酉","愠":"忄","孕":"子","运":"辶","郓":"阝","恽":"忄","韫":"韦","韵":"音","熨":"火","蕴":"艹","允":"儿","狁":"犭","陨":"阝","殒":"歹","氲":"气","晕":"日","杂":"木","砸":"石","咋":"口","咂":"口","拶":"扌","匝":"匚","再":"冂","在":"土","宰":"宀","载":"车","崽":"山","仔":"亻","灾":"火","甾":"田","哉":"口","栽":"木","咱":"口","暂":"日","赞":"贝","錾":"金","瓒":"王","昝":"日","攒":"扌","儹":"亻","趱":"走","糌":"米","簪":"竹","篸":"竹","奘":"大","葬":"艹","驵":"马","脏":"月","赃":"贝","臧":"臣","凿":"凵","灶":"火","皂":"白","唣":"口","造":"辶","噪":"口","燥":"火","躁":"足","藻":"艹","早":"日","枣":"木","蚤":"虫","澡":"氵","遭":"辶","糟":"米","则":"刂","择":"扌","泽":"氵","责":"贝","迮":"辶","啧":"口","帻":"巾","笮":"竹","舴":"舟","赜":"贝","箦":"竹","仄":"人","昃":"日","贼":"贝","谮":"讠","怎":"心","锃":"钅","甑":"瓦","赠":"贝","增":"土","憎":"忄","缯":"纟","罾":"罒","馇":"饣","札":"木","轧":"车","闸":"门","铡":"钅","诈":"讠","咤":"口","乍":"丿","炸":"火","痄":"疒","蚱":"虫","榨":"木","吒":"口","柞":"木","眨":"目","砟":"石","蹅":"足","扎":"扌","哳":"口","喳":"口","揸":"扌","渣":"氵","楂":"木","齩":"鼻","债":"亻","砦":"石","寨":"宀","瘵":"疒","骴":"骨","宅":"宀","翟":"羽","窄":"穴","摘":"扌","斋":"文","占":"卜","佔":"亻","战":"戈","栈":"木","站":"立","绽":"纟","湛":"氵","蘸":"艹","斩":"斤","展":"尸","盏":"皿","崭":"山","搌":"扌","鳣":"鱼","詹":"言","谵":"讠","瞻":"目","沾":"氵","毡":"毛","旃":"方","粘":"米","嶂":"山","幛":"巾","瘴":"疒","障":"阝","丈":"一","仗":"亻","帐":"巾","杖":"木","胀":"月","账":"贝","掌":"手","仉":"亻","涨":"氵","樟":"木","璋":"王","蟑":"虫","章":"立","鄣":"阝","嫜":"女","彰":"彡","漳":"氵","獐":"犭","张":"弓","召":"口","兆":"儿","诏":"讠","赵":"走","笊":"竹","棹":"木","照":"灬","罩":"罒","肇":"聿","找":"扌","沼":"氵","爪":"爪","钊":"钅","招":"扌","昭":"日","鼌":"黽","着":"目","哲":"口","辄":"车","蛰":"虫","谪":"讠","磔":"石","辙":"车","这":"辶","柘":"木","浙":"氵","蔗":"艹","鹧":"鸟","者":"聅","锗":"钅","赭":"赤","褶":"衤","蜇":"虫","遮":"辶","镇":"钅","震":"雨","圳":"土","阵":"阝","鸩":"鸟","振":"扌","朕":"月","赈":"贝","诊":"讠","枕":"木","缜":"纟","稹":"禾","轸":"车","畛":"田","疹":"疒","胗":"月","榛":"木","箴":"竹","臻":"至","贞":"贝","针":"钅","侦":"亻","浈":"氵","珍":"王","桢":"木","真":"目","砧":"石","祯":"礻","斟":"斗","甄":"瓦","蓁":"艹","帧":"巾","椹":"木","鎝":"釒","政":"攵","症":"疒","正":"止","证":"讠","诤":"讠","郑":"阝","挣":"扌","拯":"扌","整":"攵","狰":"犭","钲":"钅","争":"刀","征":"彳","怔":"忄","峥":"山","筝":"竹","蒸":"艹","睁":"目","铮":"钅","嶒":"山","埴":"土","职":"耳","植":"木","殖":"歹","絷":"糸","跖":"足","直":"目","值":"亻","摭":"扌","执":"扌","侄":"亻","踯":"足","膣":"月","觯":"角","踬":"足","置":"罒","雉":"隹","掷":"扌","痔":"疒","窒":"穴","鸷":"鸟","彘":"彑","智":"日","滞":"氵","痣":"疒","蛭":"虫","骘":"马","稚":"禾","桎":"木","秩":"禾","致":"至","贽":"贝","轾":"车","峙":"山","栉":"木","陟":"阝","挚":"手","至":"至","志":"心","忮":"忄","豸":"豸","制":"刂","帙":"巾","帜":"巾","治":"氵","炙":"火","质":"贝","郅":"阝","胵":"月","絺":"糹","茝":"艹","止":"止","旨":"日","址":"土","祉":"礻","咫":"口","沚":"氵","纸":"纟","芷":"艹","指":"扌","枳":"木","轵":"车","趾":"足","黹":"黹","酯":"酉","胝":"月","脂":"月","蜘":"虫","只":"口","之":"丿","支":"支","卮":"厄","汁":"氵","芝":"艹","枝":"木","知":"矢","织":"纟","肢":"月","栀":"木","祗":"礻","仲":"亻","众":"人","重":"里","踵":"足","肿":"月","种":"禾","冢":"冖","终":"纟","盅":"皿","钟":"钅","舯":"舟","衷":"衣","锺":"钅","螽":"虫","中":"丨","忠":"心","妯":"女","轴":"车","碡":"石","胄":"月","荮":"艹","皱":"皮","酎":"酉","骤":"马","籀":"竹","纣":"纟","咒":"口","宙":"宀","绉":"纟","昼":"日","肘":"月","帚":"巾","粥":"米","洲":"氵","州":"川","舟":"舟","诌":"讠","周":"口","啁":"口","竹":"竹","竺":"竹","烛":"火","逐":"辶","舳":"舟","瘃":"疒","躅":"足","箸":"竹","翥":"羽","贮":"贝","伫":"亻","住":"亻","助":"力","苎":"艹","杼":"木","注":"氵","驻":"马","柱":"木","炷":"火","祝":"礻","疰":"疒","著":"艹","蛀":"虫","筑":"竹","铸":"钅","渚":"氵","煮":"灬","嘱":"口","麈":"鹿","瞩":"目","主":"丶","拄":"扌","橥":"木","铢":"钅","蛛":"虫","槠":"木","潴":"氵","朱":"木","侏":"亻","诛":"讠","邾":"阝","洙":"氵","茱":"艹","株":"木","珠":"王","诸":"讠","猪":"犭","抓":"扌","拽":"扌","僝":"亻","啭":"口","撰":"扌","篆":"竹","馔":"饣","转":"车","颛":"页","砖":"石","专":"一","壮":"士","状":"犬","幢":"巾","撞":"扌","妆":"女","庄":"广","桩":"木","装":"衣","赘":"贝","坠":"土","缀":"纟","惴":"忄","缒":"纟","隹":"隹","追":"辶","骓":"马","椎":"木","锥":"钅","准":"冫","肫":"月","窀":"穴","谆":"讠","卓":"十","琢":"王","禚":"礻","茁":"艹","斫":"斤","浊":"氵","浞":"氵","诼":"讠","酌":"酉","啄":"口","镯":"钅","擢":"扌","濯":"氵","灼":"火","拙":"扌","倬":"亻","捉":"扌","桌":"木","涿":"氵","字":"子","自":"自","恣":"心","渍":"氵","眦":"目","姊":"女","秭":"禾","耔":"耒","笫":"竹","梓":"木","紫":"糸","滓":"氵","籽":"米","子":"子","茈":"艹","泚":"氵","薴":"艹","觜":"角","趑":"走","锱":"钅","龇":"齿","髭":"髟","鲻":"鱼","訾":"言","孜":"子","兹":"乺","咨":"口","姿":"女","赀":"贝","资":"贝","淄":"氵","缁":"纟","谘":"讠","孳":"子","嵫":"山","滋":"氵","粢":"米","辎":"车","吱":"口","菑":"艹","粽":"米","纵":"纟","总":"心","偬":"亻","踪":"足","鬃":"髟","宗":"宀","综":"纟","棕":"木","腙":"月","奏":"大","揍":"扌","走":"走","鄹":"阝","鲰":"鱼","邹":"阝","驺":"马","诹":"讠","陬":"阝","鄖":"阝","足":"足","卒":"十","族":"方","镞":"钅","祖":"礻","诅":"讠","阻":"阝","组":"纟","俎":"人","租":"禾","菹":"艹","钻":"钅","攥":"扌","赚":"贝","缵":"纟","纂":"糸","躜":"足","蕞":"艹","醉":"酉","最":"曰","罪":"罒","嘴":"口","撙":"扌","尊":"寸","遵":"辶","樽":"木","鳟":"鱼","昨":"日","作":"亻","坐":"土","阼":"阝","怍":"忄","祚":"礻","胙":"月","唑":"口","座":"广","做":"亻","酢":"酉","左":"工","佐":"亻"}')}]); \ No newline at end of file +!function(n){var r={};function e(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=r,e.d=function(n,r,t){e.o(n,r)||Object.defineProperty(n,r,{enumerable:!0,get:t})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,r){if(1&r&&(n=e(n)),8&r)return n;if(4&r&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(e.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&r&&"string"!=typeof n)for(var o in n)e.d(t,o,function(r){return n[r]}.bind(null,o));return t},e.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(r,"a",r),r},e.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},e.p="",e(e.s=0)}([function(n,r,e){function t(n){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}var o=e(1),i=o.radical,a=o.arg,u=o.setCnchar;function c(n){-1===n.plugins.indexOf("radical")&&(n.plugins.push("radical"),n.radical=i,n.type.radical=a)}function f(n){"object"!==("undefined"==typeof window?"undefined":t(window))||window.CncharRadical||(window.CncharRadical=i),"object"===("undefined"==typeof window?"undefined":t(window))&&window.CnChar?(c(window.CnChar),u(window.CnChar)):void 0!==n&&(c(n),u(n))}i.init=f,f(),n.exports=i},function(n,r,e){var t=e(2),o={array:"array"},i=null;n.exports={radical:function(){for(var n=arguments.length,r=new Array(n),e=0;e, ...radicalArgs: Array): string | Array; +} + +declare const radical: Radical; + +declare module 'cnchar' { + interface CnCharStatic { + radical: Radical; + } +} + +export default radical; \ No newline at end of file diff --git a/npm/radical/index.js b/npm/radical/index.js new file mode 100644 index 0000000..b2fd421 --- /dev/null +++ b/npm/radical/index.js @@ -0,0 +1,36 @@ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +var _require = require('./radical'), + radical = _require.radical, + arg = _require.arg, + setCnchar = _require.setCnchar; + +function main(cnchar) { + if (cnchar.plugins.indexOf('radical') !== -1) { + return; + } + + cnchar.plugins.push('radical'); + cnchar.radical = radical; + cnchar.type.radical = arg; +} + +function init(cnchar) { + if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && !window.CncharRadical) { + window.CncharRadical = radical; + } + + if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && window.CnChar) { + main(window.CnChar); + setCnchar(window.CnChar); + } else if (typeof cnchar !== 'undefined') { + main(cnchar); + setCnchar(cnchar); + } +} + +radical.init = init; +init(); +module.exports = radical; \ No newline at end of file diff --git a/npm/radical/package.json b/npm/radical/package.json new file mode 100644 index 0000000..938b7ce --- /dev/null +++ b/npm/radical/package.json @@ -0,0 +1,29 @@ +{ + "name": "cnchar-radical", + "version": "2.2.5", + "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", + "main": "index.js", + "unpkg": "cnchar.radical.min.js", + "jsdelivr": "cnchar.radical.min.js", + "typings": "index.d.ts", + "scripts": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/theajack/cnchar.git" + }, + "keywords": [ + "汉字拼音", + "汉字笔画数", + "汉字笔画顺序", + "繁体字", + "火星文", + "js库", + "theajack" + ], + "author": "theajack", + "license": "MIT", + "bugs": { + "url": "https://github.com/theajack/cnchar/issues" + }, + "homepage": "https://www.theajack.com/cnchar/" +} \ No newline at end of file diff --git a/npm/radical/radical.js b/npm/radical/radical.js new file mode 100644 index 0000000..6deb95e --- /dev/null +++ b/npm/radical/radical.js @@ -0,0 +1,54 @@ +"use strict"; + +var radicals = require('./radicals.json'); + +var arg = { + array: 'array' +}; +var _cnchar = null; + +function radical() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + if (args.length === 0) { + console.warn('idiom: 请输入搜索项'); + return; + } + + var input = args[0]; + args = args.slice(1); + + if (_cnchar) { + _cnchar._.checkArgs('radical', args); + } + + var res = ''; + + for (var i = 0; i < input.length; i++) { + var _char = radicals[input[i]]; + + if (_char) { + res += _char; + } else { + res += input[i]; + } + } + + if (args.indexOf(arg.array) !== -1 || input instanceof Array) { + return res.split(''); + } + + return res; +} + +function setCnchar(cnchar) { + _cnchar = cnchar; // initToneCodes(cnchar); +} + +module.exports = { + radical: radical, + arg: arg, + setCnchar: setCnchar +}; \ No newline at end of file diff --git a/npm/radical/radicals-generator.js b/npm/radical/radicals-generator.js new file mode 100644 index 0000000..c5d6f28 --- /dev/null +++ b/npm/radical/radicals-generator.js @@ -0,0 +1,195 @@ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _wrapRegExp(re, groups) { _wrapRegExp = function _wrapRegExp(re, groups) { return new BabelRegExp(re, undefined, groups); }; var _RegExp = _wrapNativeSuper(RegExp); var _super = RegExp.prototype; var _groups = new WeakMap(); function BabelRegExp(re, flags, groups) { var _this = _RegExp.call(this, re, flags); _groups.set(_this, groups || _groups.get(re)); return _this; } _inherits(BabelRegExp, _RegExp); BabelRegExp.prototype.exec = function (str) { var result = _super.exec.call(this, str); if (result) result.groups = buildGroups(result, this); return result; }; BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { if (typeof substitution === "string") { var groups = _groups.get(this); return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { return "$" + groups[name]; })); } else if (typeof substitution === "function") { var _this = this; return _super[Symbol.replace].call(this, str, function () { var args = []; args.push.apply(args, arguments); if (_typeof(args[args.length - 1]) !== "object") { args.push(buildGroups(args, _this)); } return substitution.apply(this, args); }); } else { return _super[Symbol.replace].call(this, str, substitution); } }; function buildGroups(result, re) { var g = _groups.get(re); return Object.keys(g).reduce(function (groups, name) { groups[name] = result[g[name]]; return groups; }, Object.create(null)); } return _wrapRegExp.apply(this, arguments); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function buildData() { + var _require = require('fs'), + createReadStream = _require.createReadStream, + fsPromises = _require.promises; + + var _require2 = require('path'), + join = _require2.join; + + var _require3 = require('readline'), + createInterface = _require3.createInterface; + + var wordRegex = /*#__PURE__*/_wrapRegExp(/"word": "(.*)"/, { + word: 1 + }); + + var radicalsRegex = /*#__PURE__*/_wrapRegExp(/"radicals": "(.*)"/, { + radicals: 1 + }); // https://raw.githubusercontent.com/pwxcoo/chinese-xinhua/master/data/word.json + + + var inputPath = join(__dirname, 'word.json'); + var outputPath = join(__dirname, 'radicals.json'); + return new Promise(function (resolve, reject) { + var words = new Map(); + var word = null; + var radicals = null; + var readStream = createReadStream(inputPath, { + encoding: 'utf8', + autoClose: true, + emitClose: true + }); + var readLine = createInterface({ + input: readStream + }); + readStream.on('error', function (err) { + return reject(err); + }); + readLine.on('close', function () { + return resolve(words); + }); + readLine.on('line', function (line) { + var matches = wordRegex.exec(line); + + if (matches && matches.groups) { + word = matches.groups.word; + radicals = null; + } else { + matches = radicalsRegex.exec(line); + + if (matches && matches.groups) { + radicals = matches.groups.radicals; + + if (word && word.length > 0 && radicals && radicals.length > 0) { + words.set(word, radicals); + } + + word = null; + radicals = null; + } + } + }); + }).then( /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(words) { + var output, first, _iterator, _step, _step$value, word, radicals; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return fsPromises.open(outputPath, 'w'); + + case 2: + output = _context.sent; + _context.next = 5; + return output.write('{\n'); + + case 5: + first = true; + _iterator = _createForOfIteratorHelper(words); + _context.prev = 7; + + _iterator.s(); + + case 9: + if ((_step = _iterator.n()).done) { + _context.next = 21; + break; + } + + _step$value = _slicedToArray(_step.value, 2), word = _step$value[0], radicals = _step$value[1]; + + if (!first) { + _context.next = 17; + break; + } + + first = false; + _context.next = 15; + return output.write(" \"".concat(word, "\": \"").concat(radicals, "\"")); + + case 15: + _context.next = 19; + break; + + case 17: + _context.next = 19; + return output.write(",\n \"".concat(word, "\": \"").concat(radicals, "\"")); + + case 19: + _context.next = 9; + break; + + case 21: + _context.next = 26; + break; + + case 23: + _context.prev = 23; + _context.t0 = _context["catch"](7); + + _iterator.e(_context.t0); + + case 26: + _context.prev = 26; + + _iterator.f(); + + return _context.finish(26); + + case 29: + _context.next = 31; + return output.write('\n}\n'); + + case 31: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[7, 23, 26, 29]]); + })); + + return function (_x) { + return _ref.apply(this, arguments); + }; + }()); +} + +buildData().then(function () { + return console.log('完成'); +}, function (err) { + return console.error(err); +}); \ No newline at end of file diff --git a/npm/radical/radicals.json b/npm/radical/radicals.json new file mode 100644 index 0000000..43199d4 --- /dev/null +++ b/npm/radical/radicals.json @@ -0,0 +1,7096 @@ +{ + "嗄": "口", + "吖": "口", + "阿": "阝", + "啊": "口", + "锕": "钅", + "騣": "駌", + "捱": "扌", + "皑": "白", + "癌": "疒", + "嗳": "口", + "艾": "艹", + "爱": "爫", + "砹": "石", + "隘": "阝", + "嗌": "口", + "嫒": "女", + "碍": "石", + "叆": "厶", + "暧": "日", + "瑷": "王", + "僾": "亻", + "餲": "飠", + "薭": "艹", + "矮": "矢", + "蔼": "艹", + "霭": "雨", + "哎": "口", + "哀": "口", + "唉": "口", + "埃": "土", + "挨": "扌", + "锿": "钅", + "歡": "欠", + "犴": "犭", + "岸": "山", + "按": "扌", + "案": "木", + "胺": "月", + "暗": "日", + "黯": "黑", + "垵": "土", + "俺": "亻", + "唵": "口", + "埯": "土", + "铵": "钅", + "揞": "扌", + "晻": "日", + "啽": "口", + "鹌": "鸟", + "鞍": "革", + "闇": "閠", + "鮟": "魚", + "安": "宀", + "桉": "木", + "氨": "气", + "庵": "广", + "谙": "讠", + "媕": "女", + "膚": "月", + "眝": "皿", + "昂": "日", + "枊": "木", + "盎": "皿", + "醠": "酉", + "肮": "月", + "敖": "攵", + "嗷": "口", + "嶅": "山", + "廒": "广", + "獒": "犬", + "遨": "辶", + "熬": "灬", + "翱": "羽", + "聱": "耳", + "螯": "虫", + "謷": "言", + "鳌": "鱼", + "鏖": "金", + "環": "王", + "妔": "大", + "坳": "土", + "岙": "山", + "傲": "亻", + "奥": "大", + "骜": "马", + "墺": "土", + "澳": "氵", + "懊": "忄", + "鏊": "金", + "芺": "艹", + "袄": "衤", + "媪": "女", + "凹": "凵", + "垇": "土", + "爊": "火", + "跋": "足", + "魃": "鬼", + "鼥": "鼠", + "拔": "扌", + "茇": "艹", + "胈": "月", + "菝": "艹", + "坝": "土", + "弝": "弓", + "爸": "父", + "罢": "罒", + "鲅": "鱼", + "霸": "雨", + "灞": "氵", + "鲌": "鱼", + "把": "扌", + "钯": "钅", + "靶": "革", + "豝": "豕", + "鲃": "鱼", + "八": "八", + "巴": "巳", + "叭": "口", + "扒": "扌", + "朳": "木", + "吧": "口", + "岜": "山", + "芭": "艹", + "疤": "疒", + "捌": "扌", + "笆": "竹", + "粑": "米", + "奲": "大", + "白": "白", + "败": "贝", + "拜": "手", + "稗": "禾", + "百": "白", + "佰": "亻", + "柏": "木", + "栢": "木", + "捭": "扌", + "摆": "扌", + "掰": "手", + "办": "力", + "半": "十", + "伴": "亻", + "扮": "扌", + "姅": "女", + "拌": "扌", + "绊": "纟", + "瓣": "瓜", + "湴": "氵", + "蝯": "虫", + "阪": "阝", + "坂": "土", + "板": "木", + "版": "片", + "钣": "钅", + "舨": "舟", + "魬": "魚", + "扳": "扌", + "攽": "攵", + "班": "王", + "般": "舟", + "颁": "页", + "斑": "文", + "搬": "扌", + "斒": "文", + "瘢": "疒", + "癍": "疒", + "墆": "土", + "蚌": "虫", + "傍": "亻", + "棒": "木", + "棓": "木", + "谤": "讠", + "稖": "禾", + "蒡": "艹", + "镑": "钅", + "绑": "纟", + "榜": "木", + "膀": "月", + "邦": "阝", + "帮": "巾", + "梆": "木", + "浜": "氵", + "雹": "雨", + "薄": "艹", + "菢": "艹", + "鲍": "鱼", + "报": "扌", + "抱": "扌", + "豹": "豸", + "暴": "日", + "虣": "虍", + "爆": "火", + "瀑": "氵", + "宝": "宀", + "饱": "饣", + "保": "亻", + "鸨": "鸟", + "堡": "土", + "葆": "艹", + "褓": "衤", + "勹": "勹", + "包": "勹", + "孢": "子", + "苞": "艹", + "胞": "月", + "煲": "火", + "龅": "齿", + "褒": "衣", + "剥": "刂", + "枹": "木", + "贝": "贝", + "狈": "犭", + "邶": "阝", + "备": "夂", + "鞴": "革", + "鐾": "金", + "背": "月", + "钡": "钅", + "倍": "亻", + "悖": "忄", + "被": "衤", + "偝": "亻", + "惫": "心", + "焙": "火", + "琲": "王", + "辈": "车", + "碚": "石", + "蓓": "艹", + "褙": "衤", + "骳": "骨", + "哱": "口", + "糽": "米", + "北": "匕", + "碑": "石", + "鹎": "鸟", + "陂": "阝", + "卑": "十", + "杯": "木", + "悲": "忄", + "椑": "木", + "呗": "口", + "坌": "土", + "笨": "竹", + "本": "木", + "苯": "艹", + "畚": "田", + "贲": "贝", + "倴": "亻", + "锛": "钅", + "奔": "大", + "甭": "用", + "泵": "水", + "迸": "辶", + "甏": "瓦", + "蹦": "足", + "間": "钅", + "萫": "艹", + "琫": "王", + "崩": "山", + "绷": "纟", + "絣": "糹", + "伻": "亻", + "祊": "礻", + "嘣": "口", + "搒": "扌", + "柲": "木", + "荸": "艹", + "鼻": "鼻", + "币": "巾", + "必": "心", + "毕": "比", + "闭": "门", + "庇": "广", + "诐": "讠", + "邲": "阝", + "畀": "田", + "苾": "艹", + "哔": "口", + "毖": "比", + "珌": "王", + "荜": "艹", + "陛": "阝", + "毙": "比", + "狴": "犭", + "铋": "钅", + "婢": "女", + "庳": "广", + "敝": "攵", + "梐": "木", + "弊": "廾", + "碧": "石", + "箅": "竹", + "萆": "艹", + "堛": "土", + "弼": "弓", + "愊": "忄", + "愎": "忄", + "皕": "白", + "筚": "竹", + "滗": "氵", + "煏": "火", + "痹": "疒", + "腷": "月", + "蓖": "艹", + "裨": "衤", + "跸": "足", + "閟": "閠", + "蔽": "艹", + "駜": "駌", + "髲": "髟", + "壁": "土", + "嬖": "女", + "篦": "竹", + "薜": "艹", + "觱": "角", + "避": "辶", + "濞": "氵", + "臂": "月", + "鞞": "革", + "髀": "骨", + "奰": "大", + "璧": "玉", + "饆": "飠", + "襞": "衣", + "襣": "衤", + "鷩": "鴅", + "躭": "足", + "鮥": "魚", + "馿": "香", + "趐": "贝", + "箄": "竹", + "舭": "舟", + "鄙": "阝", + "匕": "匕", + "比": "比", + "佊": "亻", + "吡": "口", + "妣": "女", + "沘": "氵", + "彼": "彳", + "秕": "禾", + "俾": "亻", + "笔": "竹", + "皀": "白", + "屄": "尸", + "偪": "亻", + "逼": "辶", + "鲾": "鱼", + "鎞": "釒", + "沵": "氵", + "便": "亻", + "变": "又", + "卞": "卜", + "弁": "廾", + "忭": "忄", + "抃": "扌", + "汴": "氵", + "苄": "艹", + "昪": "日", + "缏": "纟", + "遍": "辶", + "艑": "舟", + "辨": "辛", + "辩": "辛", + "辫": "辛", + "藊": "艹", + "贬": "贝", + "扁": "户", + "窆": "穴", + "匾": "匚", + "惼": "忄", + "碥": "石", + "褊": "衤", + "穐": "禾", + "搊": "扌", + "编": "纟", + "萹": "艹", + "煸": "火", + "箯": "竹", + "蝙": "虫", + "鳊": "鱼", + "鞭": "革", + "边": "辶", + "砭": "石", + "笾": "竹", + "俵": "亻", + "鳔": "鱼", + "檦": "木", + "表": "衣", + "婊": "女", + "裱": "衤", + "襢": "衤", + "穮": "禾", + "镳": "钅", + "摽": "扌", + "幖": "巾", + "滮": "氵", + "骠": "马", + "熛": "火", + "膘": "月", + "麃": "鹿", + "瘭": "疒", + "镖": "钅", + "飙": "风", + "飚": "风", + "瀌": "氵", + "彪": "彡", + "标": "木", + "飑": "风", + "髟": "髟", + "藨": "艹", + "獃": "犬", + "髏": "马", + "别": "刂", + "蹩": "足", + "瘪": "疒", + "憋": "心", + "鳖": "鱼", + "摈": "扌", + "殡": "歹", + "膑": "月", + "髌": "骨", + "鬓": "髟", + "镔": "钅", + "濒": "氵", + "豳": "豕", + "蠙": "虫", + "邠": "阝", + "宾": "宀", + "彬": "彡", + "傧": "亻", + "斌": "文", + "滨": "氵", + "缤": "纟", + "槟": "木", + "玢": "王", + "摒": "扌", + "并": "干", + "病": "疒", + "丙": "一", + "邴": "阝", + "秉": "禾", + "柄": "木", + "炳": "火", + "饼": "饣", + "蛃": "虫", + "禀": "示", + "冰": "冫", + "兵": "八", + "栟": "木", + "幷": "干", + "啵": "口", + "卜": "卜", + "踣": "足", + "襮": "衤", + "礴": "石", + "脖": "月", + "箔": "竹", + "膊": "月", + "亳": "亠", + "浡": "氵", + "僰": "人", + "伯": "亻", + "孛": "子", + "驳": "马", + "帛": "巾", + "泊": "氵", + "瓝": "瓜", + "勃": "力", + "钹": "钅", + "铂": "钅", + "舶": "舟", + "博": "十", + "渤": "氵", + "葧": "艹", + "鹁": "鸟", + "搏": "扌", + "閐": "钅", + "馻": "饣", + "駀": "香", + "簸": "竹", + "擘": "手", + "檗": "木", + "跛": "足", + "钵": "钅", + "饽": "饣", + "菠": "艹", + "嶓": "山", + "播": "扌", + "玻": "王", + "拨": "扌", + "波": "氵", + "趵": "足", + "裝": "衤", + "醭": "酉", + "不": "一", + "布": "巾", + "吥": "口", + "步": "止", + "怖": "忄", + "钚": "钅", + "部": "阝", + "埠": "土", + "瓿": "瓦", + "蔀": "艹", + "篰": "竹", + "簿": "竹", + "卟": "卜", + "补": "衤", + "哺": "口", + "捕": "扌", + "峬": "山", + "庯": "广", + "逋": "辶", + "钸": "钅", + "晡": "日", + "鵯": "鴅", + "餵": "飠", + "礤": "石", + "擦": "扌", + "才": "扌", + "材": "木", + "财": "贝", + "裁": "衣", + "菜": "艹", + "蔡": "艹", + "縩": "糹", + "采": "采", + "彩": "彡", + "睬": "目", + "踩": "足", + "緕": "糹", + "偲": "亻", + "猜": "犭", + "残": "歹", + "蚕": "虫", + "惭": "忄", + "灿": "火", + "粲": "米", + "璨": "王", + "惨": "忄", + "憯": "忄", + "黪": "黑", + "参": "厶", + "骖": "马", + "餐": "飠", + "藏": "艹", + "鑶": "釒", + "舱": "舟", + "沧": "氵", + "苍": "艹", + "仓": "人", + "曹": "曰", + "嘈": "口", + "漕": "氵", + "槽": "木", + "艚": "舟", + "螬": "虫", + "草": "艹", + "懆": "忄", + "操": "扌", + "糙": "米", + "策": "竹", + "册": "丿", + "侧": "亻", + "厕": "厂", + "恻": "忄", + "测": "氵", + "敇": "攵", + "箣": "竹", + "岑": "山", + "梣": "木", + "涔": "氵", + "层": "尸", + "曾": "曰", + "蹭": "足", + "噌": "口", + "垞": "土", + "查": "木", + "茬": "艹", + "茶": "艹", + "嵖": "山", + "搽": "扌", + "猹": "犭", + "槎": "木", + "察": "宀", + "碴": "石", + "檫": "木", + "汊": "氵", + "岔": "山", + "侘": "亻", + "诧": "讠", + "姹": "女", + "差": "工", + "镲": "钅", + "衩": "衤", + "叉": "又", + "杈": "木", + "臿": "臼", + "嗏": "口", + "插": "扌", + "锸": "钅", + "艖": "舟", + "嚓": "口", + "侪": "亻", + "柴": "木", + "豺": "豸", + "虿": "虫", + "瘥": "疒", + "拆": "扌", + "钗": "钅", + "蟾": "虫", + "蝉": "虫", + "鋋": "釒", + "廛": "广", + "潺": "氵", + "婵": "女", + "谗": "讠", + "孱": "子", + "禅": "礻", + "馋": "饣", + "缠": "纟", + "巉": "山", + "瀍": "氵", + "躔": "足", + "閗": "钅", + "繿": "糹", + "澶": "氵", + "忏": "忄", + "颤": "页", + "羼": "尸", + "韂": "革", + "铲": "钅", + "阐": "门", + "蒇": "艹", + "产": "亠", + "刬": "刂", + "冁": "乺", + "浐": "氵", + "谄": "讠", + "觇": "见", + "掺": "扌", + "搀": "扌", + "摻": "扌", + "幨": "巾", + "襜": "衤", + "肠": "月", + "苌": "艹", + "尝": "小", + "偿": "亻", + "常": "巾", + "徜": "彳", + "鲿": "鱼", + "长": "长", + "嫦": "女", + "韔": "韋", + "怅": "忄", + "玚": "王", + "畅": "田", + "倡": "亻", + "鬯": "鬯", + "唱": "口", + "氅": "毛", + "鋹": "釒", + "厂": "厂", + "场": "土", + "昶": "日", + "惝": "忄", + "敞": "攵", + "鲳": "鱼", + "伥": "亻", + "昌": "日", + "娼": "女", + "猖": "犭", + "菖": "艹", + "阊": "门", + "嘲": "口", + "潮": "氵", + "晁": "日", + "巢": "巛", + "朝": "月", + "耖": "耒", + "吵": "口", + "炒": "火", + "眧": "目", + "麨": "麥", + "抄": "扌", + "弨": "弓", + "怊": "忄", + "钞": "钅", + "焯": "火", + "超": "走", + "彻": "彳", + "坼": "土", + "掣": "手", + "撤": "扌", + "澈": "氵", + "扯": "扌", + "砗": "石", + "唓": "口", + "车": "车", + "伧": "亻", + "尘": "小", + "臣": "臣", + "忱": "忄", + "沉": "氵", + "辰": "辰", + "陈": "阝", + "宸": "宀", + "晨": "日", + "谌": "讠", + "痬": "疒", + "龀": "齿", + "趁": "走", + "榇": "木", + "衬": "衤", + "谶": "讠", + "趻": "足", + "碜": "石", + "墋": "土", + "踸": "足", + "抻": "扌", + "郴": "阝", + "琛": "王", + "嗔": "口", + "綿": "糹", + "丞": "一", + "成": "戈", + "呈": "口", + "承": "手", + "枨": "木", + "诚": "讠", + "城": "土", + "宬": "宀", + "脭": "月", + "铖": "钅", + "惩": "心", + "程": "禾", + "裎": "衤", + "塍": "土", + "酲": "酉", + "澄": "氵", + "橙": "木", + "乘": "丿", + "埕": "土", + "秤": "禾", + "逞": "辶", + "骋": "马", + "撑": "扌", + "瞠": "目", + "称": "禾", + "柽": "木", + "偁": "亻", + "蛏": "虫", + "铛": "钅", + "牚": "牙", + "琤": "王", + "趙": "赤", + "踟": "足", + "篪": "竹", + "弛": "弓", + "池": "氵", + "驰": "马", + "迟": "辶", + "茌": "艹", + "持": "扌", + "墀": "土", + "炽": "火", + "翅": "羽", + "敕": "攵", + "啻": "口", + "傺": "亻", + "彳": "彳", + "叱": "口", + "斥": "斤", + "赤": "赤", + "饬": "饣", + "抶": "扌", + "瘛": "疒", + "憏": "忄", + "褫": "衤", + "尺": "尸", + "侈": "亻", + "齿": "齿", + "耻": "耳", + "豉": "豆", + "螭": "虫", + "魑": "鬼", + "蚩": "虫", + "鸱": "鸟", + "眵": "目", + "笞": "竹", + "嗤": "口", + "媸": "女", + "摛": "扌", + "痴": "疒", + "吃": "口", + "哧": "口", + "摴": "扌", + "甧": "瓦", + "虫": "虫", + "崇": "山", + "铳": "钅", + "宠": "宀", + "艟": "舟", + "茺": "艹", + "翀": "羽", + "舂": "臼", + "憃": "心", + "充": "儿", + "冲": "冫", + "忡": "忄", + "憧": "忄", + "惆": "忄", + "绸": "纟", + "畴": "田", + "愁": "心", + "稠": "禾", + "筹": "竹", + "酬": "酉", + "踌": "足", + "懤": "忄", + "仇": "亻", + "俦": "亻", + "雠": "隹", + "臭": "自", + "殠": "歹", + "瞅": "目", + "丑": "一", + "瘳": "疒", + "犨": "牛", + "抽": "扌", + "紬": "糹", + "簄": "竹", + "厨": "厂", + "滁": "氵", + "刍": "刀", + "除": "阝", + "锄": "钅", + "蜍": "虫", + "雏": "隹", + "橱": "木", + "幮": "巾", + "躇": "足", + "蹰": "足", + "畜": "田", + "亍": "二", + "触": "角", + "俶": "亻", + "搐": "扌", + "怵": "忄", + "绌": "纟", + "憷": "忄", + "歜": "欠", + "黜": "黑", + "矗": "目", + "处": "夂", + "齼": "齲", + "杵": "木", + "础": "石", + "储": "亻", + "楮": "木", + "楚": "木", + "褚": "衤", + "出": "凵", + "初": "刀", + "樗": "木", + "膗": "月", + "嘬": "口", + "踹": "足", + "膪": "月", + "搋": "扌", + "揣": "扌", + "船": "舟", + "遄": "辶", + "椽": "木", + "传": "亻", + "舡": "舟", + "歯": "欠", + "串": "丨", + "钏": "钅", + "舛": "夕", + "喘": "口", + "僢": "亻", + "踳": "足", + "堾": "土", + "莊": "艹", + "川": "川", + "氚": "气", + "穿": "穴", + "床": "广", + "噇": "口", + "创": "刂", + "怆": "忄", + "闯": "门", + "疮": "疒", + "窗": "穴", + "摐": "扌", + "垂": "土", + "陲": "阝", + "捶": "扌", + "菙": "艹", + "棰": "木", + "槌": "木", + "锤": "钅", + "吹": "口", + "炊": "火", + "鰆": "魚", + "醇": "酉", + "纯": "纟", + "唇": "口", + "莼": "艹", + "淳": "氵", + "鹑": "鸟", + "漘": "氵", + "蠢": "虫", + "椿": "木", + "蝽": "虫", + "輴": "車", + "春": "日", + "啜": "口", + "辵": "辵", + "娖": "女", + "辍": "车", + "龊": "齿", + "歠": "欠", + "遫": "辶", + "媠": "女", + "绰": "纟", + "踔": "足", + "戳": "戈", + "祠": "礻", + "词": "讠", + "茨": "艹", + "慈": "心", + "辞": "辛", + "磁": "石", + "雌": "隹", + "鹚": "鸟", + "糍": "米", + "瓷": "瓦", + "次": "欠", + "佽": "亻", + "刺": "刂", + "赐": "贝", + "此": "止", + "佌": "亻", + "跐": "足", + "呲": "口", + "玼": "王", + "疵": "疒", + "从": "人", + "丛": "一", + "淙": "氵", + "琮": "王", + "聪": "耳", + "璁": "王", + "匆": "勹", + "苁": "艹", + "枞": "木", + "葱": "艹", + "骢": "马", + "凑": "冫", + "腠": "月", + "辏": "车", + "徂": "彳", + "殂": "歹", + "促": "亻", + "猝": "犭", + "蔟": "艹", + "醋": "酉", + "簇": "竹", + "蹙": "足", + "蹴": "足", + "粗": "米", + "窜": "穴", + "篡": "竹", + "爨": "火", + "欑": "木", + "汆": "水", + "撺": "扌", + "镩": "钅", + "蹿": "足", + "脆": "月", + "啐": "口", + "悴": "忄", + "淬": "氵", + "萃": "艹", + "毳": "毛", + "瘁": "疒", + "粹": "米", + "翠": "羽", + "璀": "王", + "崔": "山", + "催": "亻", + "摧": "扌", + "榱": "木", + "存": "子", + "寸": "寸", + "忖": "忄", + "村": "木", + "皴": "皮", + "鹾": "卤", + "矬": "矢", + "嵯": "山", + "痤": "疒", + "厝": "厂", + "挫": "扌", + "措": "扌", + "锉": "钅", + "错": "钅", + "脞": "月", + "磋": "石", + "撮": "扌", + "蹉": "足", + "搓": "扌", + "疸": "疒", + "笪": "竹", + "答": "竹", + "达": "辶", + "妲": "女", + "怛": "忄", + "瘩": "疒", + "靼": "革", + "鞑": "革", + "大": "大", + "打": "扌", + "哒": "口", + "耷": "耳", + "搭": "扌", + "嗒": "口", + "褡": "衤", + "代": "亻", + "岱": "山", + "岱d": "山", + "甙": "甘", + "绐": "纟", + "迨": "辶", + "带": "巾", + "待": "彳", + "怠": "心", + "殆": "歹", + "玳": "王", + "贷": "贝", + "埭": "土", + "袋": "衣", + "戴": "戈", + "黛": "黑", + "骀": "马", + "逮": "辶", + "歹": "歹", + "傣": "亻", + "呆": "口", + "旦": "日", + "但": "亻", + "诞": "讠", + "啖": "口", + "弹": "弓", + "惮": "忄", + "淡": "氵", + "萏": "艹", + "蛋": "虫", + "氮": "气", + "澹": "氵", + "赕": "贝", + "紞": "糹", + "掸": "扌", + "亶": "亠", + "胆": "月", + "殚": "歹", + "瘅": "疒", + "箪": "竹", + "儋": "亻", + "丹": "丶", + "单": "十", + "担": "扌", + "眈": "目", + "耽": "耳", + "郸": "阝", + "聃": "耳", + "凼": "凵", + "宕": "宀", + "砀": "石", + "荡": "艹", + "档": "木", + "菪": "艹", + "挡": "扌", + "党": "儿", + "谠": "讠", + "当": "彐", + "裆": "衤", + "盗": "皿", + "道": "辶", + "稻": "禾", + "纛": "糸", + "到": "刂", + "悼": "忄", + "帱": "巾", + "蹈": "足", + "捣": "扌", + "祷": "礻", + "导": "寸", + "岛": "山", + "倒": "亻", + "叨": "口", + "忉": "忄", + "氘": "气", + "刀": "刀", + "裯": "衤", + "的": "白", + "得": "彳", + "锝": "钅", + "德": "彳", + "嶝": "山", + "瞪": "目", + "磴": "石", + "镫": "钅", + "邓": "阝", + "凳": "几", + "等": "竹", + "戥": "戈", + "灯": "火", + "登": "癶", + "噔": "口", + "簦": "竹", + "蹬": "足", + "狄": "犭", + "籴": "米", + "镝": "钅", + "迪": "辶", + "敌": "攵", + "涤": "氵", + "荻": "艹", + "笛": "竹", + "觌": "见", + "嫡": "女", + "地": "土", + "帝": "巾", + "娣": "女", + "递": "辶", + "第": "竹", + "谛": "讠", + "棣": "木", + "睇": "目", + "缔": "纟", + "蒂": "艹", + "弟": "弓", + "碲": "石", + "珃": "王", + "砥": "石", + "骶": "骨", + "诋": "讠", + "邸": "阝", + "坻": "土", + "底": "广", + "抵": "扌", + "柢": "木", + "低": "亻", + "羝": "羊", + "堤": "土", + "嘀": "口", + "滴": "氵", + "氐": "氏", + "韑": "革", + "嗲": "口", + "坫": "土", + "店": "广", + "垫": "土", + "玷": "王", + "钿": "钅", + "惦": "忄", + "淀": "氵", + "奠": "大", + "殿": "殳", + "靛": "青", + "癜": "疒", + "簟": "竹", + "电": "田", + "佃": "亻", + "甸": "田", + "踮": "足", + "典": "八", + "点": "灬", + "碘": "石", + "掂": "扌", + "滇": "氵", + "颠": "页", + "巅": "山", + "癫": "疒", + "吊": "口", + "钓": "钅", + "调": "讠", + "掉": "扌", + "铞": "钅", + "凋": "冫", + "貂": "豸", + "碉": "石", + "雕": "隹", + "鲷": "鱼", + "刁": "刀", + "叼": "口", + "迭": "辶", + "垤": "土", + "瓞": "瓜", + "谍": "讠", + "喋": "口", + "堞": "土", + "揲": "扌", + "耋": "聅", + "叠": "又", + "牒": "片", + "碟": "石", + "蝶": "虫", + "蹀": "足", + "鲽": "鱼", + "爹": "父", + "跌": "足", + "钉": "钅", + "订": "讠", + "定": "宀", + "啶": "口", + "腚": "月", + "碇": "石", + "锭": "钅", + "铤": "钅", + "顶": "页", + "鼎": "鼎", + "酊": "酉", + "耵": "耳", + "疔": "疒", + "盯": "目", + "丁": "一", + "仃": "亻", + "叮": "口", + "玎": "王", + "町": "田", + "丢": "一", + "铥": "钅", + "恫": "忄", + "栋": "木", + "洞": "氵", + "胨": "月", + "胴": "月", + "硐": "石", + "动": "力", + "冻": "冫", + "侗": "亻", + "垌": "土", + "峒": "山", + "董": "艹", + "懂": "忄", + "蕫": "艹", + "东": "一", + "冬": "冫", + "咚": "口", + "岽": "山", + "鸫": "鸟", + "斗": "斗", + "窦": "穴", + "豆": "豆", + "逗": "辶", + "痘": "疒", + "鄈": "阝", + "抖": "扌", + "陡": "阝", + "蚪": "虫", + "都": "阝", + "兜": "儿", + "蔸": "艹", + "篼": "竹", + "毒": "母", + "读": "讠", + "渎": "氵", + "椟": "木", + "牍": "片", + "犊": "牜", + "髑": "骨", + "黩": "黑", + "独": "犭", + "芏": "艹", + "妒": "女", + "杜": "木", + "肚": "月", + "度": "广", + "渡": "氵", + "镀": "钅", + "蠹": "虫", + "赌": "贝", + "睹": "目", + "笃": "竹", + "堵": "土", + "嘟": "口", + "督": "目", + "段": "殳", + "断": "斤", + "缎": "纟", + "椴": "木", + "煅": "火", + "锻": "钅", + "簖": "竹", + "短": "矢", + "端": "立", + "篅": "竹", + "队": "阝", + "对": "寸", + "兑": "儿", + "祋": "礻", + "怼": "心", + "碓": "石", + "憝": "心", + "镦": "钅", + "錿": "釒", + "堆": "土", + "囤": "囗", + "沌": "氵", + "炖": "火", + "盾": "目", + "砘": "石", + "钝": "钅", + "顿": "页", + "遁": "辶", + "盹": "目", + "趸": "足", + "吨": "口", + "惇": "忄", + "敦": "攵", + "墩": "土", + "礅": "石", + "蹲": "足", + "夺": "大", + "铎": "钅", + "敚": "攵", + "踱": "足", + "堕": "土", + "舵": "舟", + "惰": "忄", + "跺": "足", + "剁": "刂", + "沲": "氵", + "朵": "木", + "哚": "口", + "垛": "土", + "躲": "身", + "掇": "扌", + "多": "夕", + "咄": "口", + "哆": "口", + "裰": "衤", + "呃": "口", + "讹": "讠", + "俄": "亻", + "娥": "女", + "峨": "山", + "莪": "艹", + "锇": "钅", + "鹅": "鸟", + "蛾": "虫", + "额": "页", + "扼": "扌", + "苊": "艹", + "轭": "车", + "垩": "土", + "恶": "心", + "厄": "厂", + "饿": "饣", + "谔": "讠", + "鄂": "阝", + "阏": "门", + "愕": "忄", + "萼": "艹", + "遏": "辶", + "腭": "月", + "锷": "钅", + "鹗": "鸟", + "颚": "页", + "噩": "口", + "鳄": "鱼", + "阨": "阝", + "砵": "石", + "婀": "女", + "妸": "女", + "诶": "讠", + "唔": "口", + "摁": "扌", + "恩": "心", + "蒽": "艹", + "儿": "儿", + "而": "而", + "鸸": "鸟", + "鲕": "鱼", + "聐": "而", + "贰": "贝", + "二": "二", + "佴": "亻", + "尔": "小", + "耳": "耳", + "迩": "辶", + "洱": "氵", + "饵": "饣", + "珥": "王", + "铒": "钅", + "乏": "丿", + "伐": "亻", + "垡": "土", + "罚": "罒", + "阀": "门", + "筏": "竹", + "珐": "王", + "法": "氵", + "砝": "石", + "发": "又", + "钒": "钅", + "烦": "火", + "樊": "木", + "燔": "火", + "璠": "王", + "繁": "糸", + "蹯": "足", + "蘩": "艹", + "凡": "几", + "矾": "石", + "犯": "犭", + "泛": "氵", + "饭": "饣", + "范": "艹", + "贩": "贝", + "畈": "田", + "梵": "木", + "返": "辶", + "氾": "氵", + "反": "又", + "汎": "氵", + "帆": "巾", + "番": "田", + "幡": "巾", + "翻": "羽", + "藩": "艹", + "蕃": "艹", + "防": "阝", + "妨": "女", + "房": "户", + "肪": "月", + "鲂": "鱼", + "放": "攵", + "仿": "亻", + "访": "讠", + "纺": "纟", + "舫": "舟", + "昿": "日", + "方": "方", + "邡": "阝", + "坊": "土", + "芳": "艹", + "枋": "木", + "钫": "钅", + "肥": "月", + "淝": "氵", + "腓": "月", + "吠": "口", + "废": "广", + "沸": "氵", + "狒": "犭", + "肺": "月", + "费": "贝", + "痱": "疒", + "镄": "钅", + "榧": "木", + "翡": "羽", + "篚": "竹", + "匪": "匚", + "诽": "讠", + "悱": "忄", + "斐": "文", + "蜚": "虫", + "霏": "雨", + "鲱": "鱼", + "飞": "飞", + "妃": "女", + "非": "非", + "啡": "口", + "绯": "纟", + "菲": "艹", + "扉": "户", + "坟": "土", + "汾": "氵", + "鼢": "鼠", + "棼": "木", + "焚": "火", + "奋": "大", + "忿": "心", + "偾": "亻", + "愤": "忄", + "粪": "米", + "份": "亻", + "鲼": "鱼", + "瀵": "氵", + "粉": "米", + "酚": "酉", + "分": "刀", + "吩": "口", + "纷": "纟", + "芬": "艹", + "氛": "气", + "逢": "辶", + "缝": "纟", + "冯": "冫", + "俸": "亻", + "凤": "几", + "奉": "大", + "讽": "讠", + "唪": "口", + "葑": "艹", + "锋": "钅", + "蜂": "虫", + "酆": "阝", + "丰": "丨", + "风": "风", + "沣": "氵", + "沨": "氵", + "峰": "山", + "烽": "火", + "枫": "木", + "封": "寸", + "疯": "疒", + "砜": "石", + "佛": "亻", + "缶": "缶", + "否": "口", + "孚": "子", + "扶": "扌", + "芙": "艹", + "怫": "忄", + "拂": "扌", + "服": "月", + "绂": "纟", + "绋": "纟", + "苻": "艹", + "俘": "亻", + "祓": "礻", + "罘": "罒", + "茯": "艹", + "郛": "阝", + "浮": "氵", + "砩": "石", + "蚨": "虫", + "匐": "勹", + "桴": "木", + "涪": "氵", + "符": "竹", + "艴": "色", + "菔": "艹", + "袱": "衤", + "幅": "巾", + "弗": "弓", + "伏": "亻", + "凫": "几", + "氟": "气", + "福": "礻", + "蜉": "虫", + "辐": "车", + "幞": "巾", + "蝠": "虫", + "黻": "黹", + "父": "父", + "讣": "讠", + "付": "亻", + "妇": "女", + "负": "贝", + "附": "阝", + "咐": "口", + "阜": "阜", + "驸": "马", + "复": "夂", + "傅": "亻", + "赴": "走", + "富": "宀", + "副": "刂", + "鳆": "鱼", + "覆": "覀", + "馥": "香", + "赋": "贝", + "缚": "纟", + "腹": "月", + "鲋": "鱼", + "赙": "贝", + "蝜": "虫", + "蝮": "虫", + "黼": "黹", + "腐": "肉", + "腑": "月", + "滏": "氵", + "辅": "车", + "抚": "扌", + "甫": "用", + "府": "广", + "拊": "扌", + "斧": "斤", + "俯": "亻", + "釜": "金", + "肤": "月", + "趺": "足", + "麸": "麦", + "稃": "禾", + "跗": "足", + "鄜": "阝", + "孵": "子", + "敷": "攵", + "呋": "口", + "夫": "大", + "钆": "钅", + "尜": "小", + "噶": "口", + "尬": "尢", + "尕": "小", + "嘎": "口", + "旮": "日", + "伽": "亻", + "呷": "口", + "丐": "一", + "钙": "钅", + "盖": "皿", + "溉": "氵", + "戤": "戈", + "概": "木", + "改": "攵", + "侅": "亻", + "该": "讠", + "陔": "阝", + "垓": "土", + "赅": "贝", + "旰": "日", + "赣": "贝", + "绀": "纟", + "淦": "氵", + "幹": "幹", + "干": "干", + "杆": "木", + "秆": "禾", + "赶": "走", + "敢": "攵", + "感": "心", + "澉": "氵", + "橄": "木", + "擀": "扌", + "矸": "石", + "肝": "月", + "坩": "土", + "泔": "氵", + "苷": "艹", + "柑": "木", + "竿": "竹", + "疳": "疒", + "酐": "酉", + "甘": "甘", + "尴": "尢", + "杠": "木", + "筻": "竹", + "戆": "心", + "戅": "心", + "岗": "山", + "港": "氵", + "纲": "纟", + "肛": "月", + "缸": "缶", + "钢": "钅", + "罡": "罒", + "冈": "冂", + "刚": "刂", + "锆": "钅", + "告": "口", + "诰": "讠", + "郜": "阝", + "藁": "艹", + "杲": "木", + "搞": "扌", + "缟": "纟", + "槁": "木", + "稿": "禾", + "镐": "钅", + "高": "高", + "槔": "木", + "睾": "目", + "膏": "月", + "篙": "竹", + "糕": "米", + "皋": "白", + "羔": "灬", + "隔": "阝", + "嗝": "口", + "塥": "土", + "阁": "门", + "革": "革", + "格": "木", + "鬲": "鬲", + "搿": "手", + "膈": "月", + "镉": "钅", + "骼": "骨", + "佫": "亻", + "个": "丨", + "各": "口", + "虼": "虫", + "硌": "石", + "铬": "钅", + "箇": "竹", + "哿": "口", + "舸": "舟", + "葛": "艹", + "戈": "戈", + "圪": "土", + "纥": "纟", + "疙": "疒", + "哥": "口", + "胳": "月", + "袼": "衤", + "鸽": "鸟", + "割": "刂", + "搁": "扌", + "歌": "欠", + "咯": "口", + "给": "纟", + "哏": "口", + "亘": "二", + "艮": "艮", + "茛": "艹", + "根": "木", + "跟": "足", + "更": "曰", + "鄎": "阝", + "绠": "纟", + "耿": "耳", + "梗": "木", + "鲠": "鱼", + "哽": "口", + "埂": "土", + "庚": "广", + "耕": "耒", + "赓": "贝", + "羹": "羊", + "供": "亻", + "共": "八", + "贡": "贝", + "珙": "王", + "巩": "工", + "汞": "水", + "拱": "扌", + "觥": "角", + "肱": "月", + "宫": "宀", + "恭": "小", + "蚣": "虫", + "躬": "身", + "龚": "龙", + "工": "工", + "弓": "弓", + "公": "八", + "功": "力", + "攻": "攵", + "构": "木", + "诟": "讠", + "购": "贝", + "垢": "土", + "够": "夕", + "媾": "女", + "彀": "弓", + "觏": "见", + "遘": "辶", + "笱": "竹", + "岣": "山", + "狗": "犭", + "苟": "艹", + "枸": "木", + "勾": "勹", + "佝": "亻", + "沟": "氵", + "钩": "钅", + "缑": "纟", + "篝": "竹", + "鞲": "革", + "鲴": "鱼", + "固": "囗", + "故": "攵", + "顾": "页", + "崮": "山", + "梏": "木", + "牿": "牜", + "雇": "隹", + "痼": "疒", + "锢": "钅", + "鼓": "鼓", + "嘏": "口", + "臌": "月", + "瞽": "目", + "鹘": "鸟", + "古": "口", + "汩": "氵", + "诂": "讠", + "谷": "谷", + "股": "月", + "钴": "钅", + "蛊": "虫", + "牯": "牜", + "骨": "骨", + "罟": "罒", + "穣": "禾", + "觚": "角", + "辜": "辛", + "酤": "酉", + "毂": "殳", + "箍": "竹", + "估": "亻", + "咕": "口", + "姑": "女", + "孤": "子", + "沽": "氵", + "轱": "车", + "鸪": "鸟", + "菇": "艹", + "菰": "艹", + "蛄": "虫", + "诖": "讠", + "挂": "扌", + "褂": "衤", + "卦": "卜", + "剐": "刂", + "寡": "宀", + "呱": "口", + "瓜": "瓜", + "刮": "刂", + "胍": "月", + "鸹": "鸟", + "栝": "木", + "怪": "忄", + "拐": "扌", + "乖": "丿", + "冠": "冖", + "盥": "皿", + "灌": "氵", + "瓘": "王", + "贯": "贝", + "惯": "忄", + "掼": "扌", + "涫": "氵", + "鹳": "鸟", + "罐": "缶", + "馆": "饣", + "管": "竹", + "倌": "亻", + "棺": "木", + "鳏": "鱼", + "关": "乺", + "观": "见", + "官": "宀", + "逛": "辶", + "广": "广", + "犷": "犭", + "光": "儿", + "咣": "口", + "桄": "木", + "胱": "月", + "桧": "木", + "刽": "刂", + "刿": "刂", + "柜": "木", + "炅": "火", + "贵": "贝", + "桂": "木", + "跪": "足", + "鳜": "鱼", + "宄": "宀", + "轨": "车", + "庋": "广", + "匦": "匚", + "诡": "讠", + "癸": "癶", + "鬼": "鬼", + "晷": "日", + "簋": "竹", + "傀": "亻", + "瑰": "王", + "鲑": "鱼", + "硅": "石", + "归": "彐", + "圭": "土", + "妫": "女", + "龟": "龟", + "规": "见", + "皈": "白", + "闺": "门", + "雟": "隹", + "琯": "王", + "棍": "木", + "衮": "衣", + "绲": "纟", + "辊": "车", + "滚": "氵", + "磙": "石", + "鲧": "鱼", + "虢": "虍", + "馘": "首", + "囯": "囗", + "国": "囗", + "帼": "巾", + "掴": "扌", + "过": "辶", + "蜾": "虫", + "裹": "衣", + "果": "木", + "椁": "木", + "呙": "口", + "埚": "土", + "郭": "阝", + "崞": "山", + "聒": "耳", + "锅": "钅", + "蝈": "虫", + "蛤": "虫", + "铪": "钅", + "哈": "口", + "孩": "子", + "骸": "骨", + "还": "辶", + "亥": "亠", + "骇": "马", + "害": "宀", + "氦": "气", + "海": "氵", + "胲": "月", + "醢": "酉", + "邗": "阝", + "含": "口", + "邯": "阝", + "函": "凵", + "浛": "氵", + "晗": "日", + "涵": "氵", + "焓": "火", + "寒": "宀", + "韩": "韦", + "汗": "氵", + "悍": "忄", + "捍": "扌", + "焊": "火", + "菡": "艹", + "傼": "亻", + "颔": "页", + "撖": "扌", + "憾": "忄", + "撼": "扌", + "翰": "羽", + "旱": "日", + "瀚": "氵", + "汉": "氵", + "琱": "王", + "罕": "冖", + "喊": "口", + "蚶": "虫", + "酣": "酉", + "憨": "心", + "鼾": "鼻", + "顸": "页", + "杭": "木", + "绗": "纟", + "航": "舟", + "颃": "页", + "沆": "氵", + "夯": "大", + "嚎": "口", + "壕": "土", + "濠": "氵", + "蚝": "虫", + "毫": "毛", + "嗥": "口", + "豪": "豕", + "渂": "氵", + "浩": "氵", + "耗": "耒", + "皓": "白", + "滈": "氵", + "颢": "页", + "灏": "氵", + "号": "口", + "昊": "日", + "好": "女", + "郝": "阝", + "蒿": "艹", + "嚆": "口", + "薅": "艹", + "禾": "禾", + "合": "口", + "何": "亻", + "劾": "力", + "和": "口", + "河": "氵", + "曷": "曰", + "阂": "门", + "核": "木", + "盍": "皿", + "荷": "艹", + "涸": "氵", + "盒": "皿", + "菏": "艹", + "颌": "页", + "阖": "门", + "翮": "羽", + "詚": "言", + "褐": "衤", + "赫": "赤", + "鹤": "鸟", + "壑": "土", + "贺": "贝", + "喝": "口", + "嗬": "口", + "诃": "讠", + "呵": "口", + "黑": "黑", + "嘿": "口", + "嗨": "口", + "痕": "疒", + "恨": "忄", + "很": "彳", + "狠": "犭", + "恒": "忄", + "桁": "木", + "珩": "王", + "横": "木", + "衡": "行", + "蘅": "艹", + "亨": "亠", + "哼": "口", + "红": "纟", + "宏": "宀", + "闳": "门", + "泓": "氵", + "弘": "弓", + "洪": "氵", + "荭": "艹", + "虹": "虫", + "鸿": "鸟", + "蕻": "艹", + "黉": "黄", + "讧": "讠", + "哄": "口", + "訇": "言", + "烘": "火", + "薨": "艹", + "轰": "车", + "喉": "口", + "猴": "犭", + "瘊": "疒", + "篌": "竹", + "糇": "米", + "骺": "骨", + "郼": "阝", + "后": "口", + "厚": "厂", + "後": "彳", + "逅": "辶", + "候": "亻", + "堠": "土", + "鲎": "鱼", + "侯": "亻", + "吼": "口", + "醐": "酉", + "觳": "角", + "囫": "囗", + "弧": "弓", + "狐": "犭", + "胡": "月", + "壶": "士", + "斛": "斗", + "湖": "氵", + "猢": "犭", + "葫": "艹", + "煳": "火", + "瑚": "王", + "鹕": "鸟", + "槲": "木", + "糊": "米", + "蝴": "虫", + "鹄": "鸟", + "鹱": "鸟", + "互": "二", + "户": "户", + "冱": "冫", + "护": "扌", + "沪": "氵", + "岵": "山", + "怙": "忄", + "戽": "户", + "祜": "礻", + "笏": "竹", + "扈": "户", + "瓠": "瓜", + "鄠": "阝", + "虎": "虍", + "浒": "氵", + "唬": "口", + "琥": "王", + "呼": "口", + "忽": "心", + "乎": "丿", + "烀": "火", + "轷": "车", + "唿": "口", + "惚": "忄", + "滹": "氵", + "华": "十", + "哗": "口", + "骅": "马", + "铧": "钅", + "滑": "氵", + "猾": "犭", + "划": "刂", + "画": "田", + "话": "讠", + "桦": "木", + "觟": "角", + "化": "匕", + "砉": "石", + "花": "艹", + "怀": "忄", + "徊": "彳", + "淮": "氵", + "槐": "木", + "踝": "足", + "坏": "土", + "洹": "氵", + "桓": "木", + "萑": "艹", + "环": "王", + "锾": "钅", + "寰": "宀", + "缳": "纟", + "鬟": "髟", + "圜": "囗", + "幻": "幺", + "奂": "大", + "宦": "宀", + "唤": "口", + "换": "扌", + "浣": "氵", + "涣": "氵", + "患": "心", + "焕": "火", + "逭": "辶", + "痪": "疒", + "豢": "豕", + "漶": "氵", + "鲩": "鱼", + "擐": "扌", + "缓": "纟", + "欢": "欠", + "獾": "犭", + "徨": "彳", + "惶": "忄", + "湟": "氵", + "遑": "辶", + "煌": "火", + "潢": "氵", + "璜": "王", + "篁": "竹", + "蝗": "虫", + "癀": "疒", + "磺": "石", + "簧": "竹", + "蟥": "虫", + "皇": "白", + "凰": "几", + "隍": "阝", + "黄": "黄", + "鳇": "鱼", + "晃": "日", + "滉": "氵", + "谎": "讠", + "幌": "巾", + "恍": "忄", + "肓": "月", + "荒": "艹", + "慌": "忄", + "回": "囗", + "洄": "氵", + "茴": "艹", + "蛔": "虫", + "卉": "十", + "汇": "氵", + "会": "人", + "讳": "讠", + "烩": "火", + "贿": "贝", + "彗": "彐", + "晦": "日", + "秽": "禾", + "喙": "口", + "惠": "心", + "缋": "纟", + "慧": "心", + "蕙": "艹", + "浍": "氵", + "绘": "纟", + "荟": "艹", + "诲": "讠", + "恚": "心", + "蟪": "虫", + "毁": "殳", + "悔": "忄", + "烜": "火", + "麾": "麻", + "徽": "彳", + "隳": "阝", + "灰": "火", + "诙": "讠", + "咴": "口", + "恢": "忄", + "挥": "扌", + "虺": "虫", + "晖": "日", + "珲": "王", + "辉": "车", + "浑": "氵", + "馄": "饣", + "魂": "鬼", + "诨": "讠", + "混": "氵", + "溷": "氵", + "昏": "日", + "荤": "艹", + "婚": "女", + "阍": "门", + "活": "氵", + "霍": "雨", + "或": "戈", + "货": "贝", + "获": "艹", + "祸": "礻", + "惑": "心", + "镬": "钅", + "嚯": "口", + "藿": "艹", + "蠖": "虫", + "火": "火", + "伙": "亻", + "钬": "钅", + "夥": "夕", + "耠": "耒", + "锪": "钅", + "劐": "刂", + "豁": "谷", + "攉": "扌", + "蕺": "艹", + "辑": "车", + "籍": "竹", + "嵴": "山", + "戢": "戈", + "棘": "木", + "殛": "歹", + "集": "隹", + "嫉": "女", + "楫": "木", + "蒺": "艹", + "瘠": "疒", + "吉": "口", + "岌": "山", + "汲": "氵", + "级": "纟", + "即": "卩", + "极": "木", + "亟": "二", + "佶": "亻", + "姞": "女", + "急": "心", + "及": "又", + "笈": "竹", + "疾": "疒", + "諔": "言", + "骥": "马", + "祭": "示", + "蓟": "艹", + "暨": "日", + "跽": "足", + "霁": "雨", + "鲚": "鱼", + "稷": "禾", + "鲫": "鱼", + "冀": "八", + "髻": "髟", + "既": "旡", + "洎": "氵", + "济": "氵", + "继": "纟", + "觊": "见", + "偈": "亻", + "寂": "宀", + "寄": "宀", + "悸": "忄", + "计": "讠", + "记": "讠", + "伎": "亻", + "纪": "纟", + "妓": "女", + "忌": "心", + "技": "扌", + "芰": "艹", + "际": "阝", + "剂": "刂", + "季": "子", + "哜": "口", + "迹": "辶", + "绩": "纟", + "几": "几", + "己": "己", + "虮": "虫", + "挤": "扌", + "脊": "月", + "掎": "扌", + "戟": "戈", + "麂": "鹿", + "畸": "田", + "跻": "足", + "箕": "竹", + "畿": "田", + "稽": "禾", + "齑": "齐", + "墼": "土", + "激": "氵", + "羁": "罒", + "嵇": "山", + "犄": "牜", + "缉": "纟", + "赍": "贝", + "剞": "刂", + "唧": "口", + "姬": "女", + "屐": "尸", + "积": "禾", + "笄": "竹", + "基": "土", + "丌": "一", + "讥": "讠", + "击": "凵", + "叽": "口", + "饥": "饣", + "乩": "乙", + "圾": "土", + "机": "木", + "玑": "王", + "肌": "月", + "芨": "艹", + "矶": "石", + "鸡": "鸟", + "咭": "口", + "戛": "戈", + "铗": "钅", + "蛱": "虫", + "颊": "页", + "袷": "衤", + "郏": "阝", + "荚": "艹", + "恝": "心", + "价": "亻", + "驾": "马", + "架": "木", + "稼": "禾", + "嫁": "女", + "假": "亻", + "胛": "月", + "贾": "贝", + "钾": "钅", + "徦": "彳", + "瘕": "疒", + "甲": "田", + "叚": "又", + "岬": "山", + "挟": "扌", + "佳": "亻", + "葭": "艹", + "跏": "足", + "嘉": "口", + "镓": "钅", + "迦": "辶", + "枷": "木", + "浃": "氵", + "珈": "王", + "家": "宀", + "痂": "疒", + "笳": "竹", + "袈": "衣", + "加": "力", + "夹": "大", + "筴": "竹", + "见": "见", + "件": "亻", + "建": "廴", + "饯": "饣", + "剑": "刂", + "牮": "牛", + "荐": "艹", + "贱": "贝", + "健": "亻", + "涧": "氵", + "舰": "舟", + "渐": "氵", + "谏": "讠", + "楗": "木", + "毽": "毛", + "溅": "氵", + "腱": "月", + "践": "足", + "箭": "竹", + "踺": "足", + "鉴": "金", + "键": "钅", + "僭": "亻", + "謇": "言", + "蹇": "足", + "囝": "囗", + "拣": "扌", + "枧": "木", + "俭": "亻", + "柬": "木", + "茧": "艹", + "捡": "扌", + "笕": "竹", + "减": "冫", + "剪": "刀", + "检": "木", + "趼": "足", + "睑": "目", + "硷": "石", + "裥": "衤", + "锏": "钅", + "简": "竹", + "谫": "讠", + "戬": "戈", + "碱": "石", + "翦": "羽", + "湔": "氵", + "犍": "牜", + "缄": "纟", + "搛": "扌", + "煎": "灬", + "缣": "纟", + "蒹": "艹", + "鲣": "鱼", + "鹣": "鸟", + "鞯": "革", + "戋": "戈", + "奸": "女", + "尖": "小", + "幵": "干", + "坚": "土", + "歼": "歹", + "间": "门", + "肩": "月", + "艰": "艮", + "兼": "乺", + "监": "皿", + "笺": "竹", + "菅": "艹", + "匠": "匚", + "降": "阝", + "绛": "纟", + "酱": "酉", + "犟": "牛", + "糨": "米", + "讲": "讠", + "奖": "大", + "桨": "木", + "蒋": "艹", + "耩": "耒", + "江": "氵", + "姜": "女", + "将": "寸", + "茳": "艹", + "浆": "水", + "豇": "豆", + "僵": "亻", + "彊": "弓", + "缰": "纟", + "礓": "石", + "疆": "田", + "嚼": "口", + "叫": "口", + "轿": "车", + "较": "车", + "教": "攵", + "窖": "穴", + "酵": "酉", + "噍": "口", + "醮": "酉", + "糸": "糸", + "皎": "白", + "矫": "矢", + "脚": "月", + "铰": "钅", + "搅": "扌", + "剿": "刂", + "敫": "攵", + "徼": "彳", + "缴": "纟", + "角": "角", + "佼": "亻", + "挢": "扌", + "狡": "犭", + "绞": "纟", + "饺": "饣", + "躥": "足", + "鹪": "鸟", + "鲛": "鱼", + "蕉": "艹", + "礁": "石", + "浇": "氵", + "茭": "艹", + "骄": "马", + "胶": "月", + "椒": "木", + "焦": "灬", + "蛟": "虫", + "跤": "足", + "僬": "亻", + "艽": "艹", + "交": "亠", + "郊": "阝", + "姣": "女", + "娇": "女", + "萩": "艹", + "节": "艹", + "讦": "讠", + "孑": "子", + "杰": "木", + "劫": "力", + "诘": "讠", + "拮": "扌", + "洁": "氵", + "结": "纟", + "桀": "木", + "婕": "女", + "捷": "扌", + "颉": "页", + "睫": "目", + "截": "戈", + "碣": "石", + "竭": "立", + "鲒": "鱼", + "羯": "羊", + "戒": "戈", + "芥": "艹", + "届": "尸", + "介": "人", + "界": "田", + "疥": "疒", + "诫": "讠", + "借": "亻", + "蚧": "虫", + "骱": "骨", + "藉": "艹", + "姐": "女", + "解": "角", + "揭": "扌", + "街": "行", + "阶": "阝", + "疖": "疒", + "皆": "白", + "接": "扌", + "秸": "禾", + "喈": "口", + "嗟": "口", + "晋": "日", + "浸": "氵", + "烬": "火", + "赆": "贝", + "缙": "纟", + "禁": "示", + "靳": "革", + "觐": "见", + "噤": "口", + "尽": "尸", + "劲": "力", + "妗": "女", + "近": "辶", + "进": "辶", + "荩": "艹", + "馑": "饣", + "槿": "木", + "瑾": "王", + "仅": "亻", + "卺": "厄", + "紧": "糸", + "堇": "土", + "谨": "讠", + "锦": "钅", + "廑": "广", + "琿": "王", + "筋": "竹", + "襟": "衤", + "巾": "巾", + "今": "人", + "斤": "斤", + "金": "金", + "津": "氵", + "矜": "矛", + "衿": "衤", + "俓": "亻", + "胫": "月", + "痉": "疒", + "竞": "立", + "婧": "女", + "竟": "立", + "敬": "攵", + "靖": "青", + "境": "土", + "獍": "犭", + "静": "青", + "镜": "钅", + "净": "冫", + "弪": "弓", + "径": "彳", + "肼": "月", + "颈": "页", + "景": "日", + "儆": "亻", + "憬": "忄", + "警": "言", + "井": "二", + "阱": "阝", + "刭": "刂", + "京": "亠", + "泾": "氵", + "经": "纟", + "茎": "艹", + "荆": "艹", + "惊": "忄", + "旌": "方", + "菁": "艹", + "晶": "日", + "腈": "月", + "睛": "目", + "粳": "米", + "兢": "儿", + "精": "米", + "鲸": "鱼", + "迥": "辶", + "炯": "火", + "窘": "穴", + "扃": "户", + "旧": "日", + "臼": "臼", + "咎": "口", + "疚": "疒", + "柩": "木", + "桕": "木", + "厩": "厂", + "救": "攵", + "就": "尢", + "舅": "臼", + "僦": "亻", + "鹫": "鸟", + "韭": "韭", + "酒": "酉", + "灸": "火", + "玖": "王", + "九": "丿", + "久": "丿", + "纠": "纟", + "究": "穴", + "鸠": "鸟", + "赳": "走", + "阄": "门", + "啾": "口", + "揪": "扌", + "樛": "木", + "鬏": "髟", + "局": "尸", + "桔": "木", + "菊": "艹", + "橘": "木", + "锯": "钅", + "醵": "酉", + "犋": "牜", + "飓": "风", + "惧": "忄", + "据": "扌", + "距": "足", + "窭": "穴", + "聚": "耳", + "屦": "尸", + "踞": "足", + "遽": "辶", + "句": "口", + "巨": "工", + "讵": "讠", + "姖": "女", + "拒": "扌", + "苣": "艹", + "具": "八", + "炬": "火", + "钜": "钅", + "俱": "亻", + "倨": "亻", + "剧": "刂", + "咀": "口", + "沮": "氵", + "举": "丶", + "矩": "矢", + "莒": "艹", + "榉": "木", + "龃": "齿", + "踽": "足", + "伡": "亻", + "居": "尸", + "拘": "扌", + "椐": "木", + "琚": "王", + "趄": "走", + "锔": "钅", + "裾": "衤", + "雎": "隹", + "鞠": "革", + "鞫": "革", + "狙": "犭", + "苴": "艹", + "驹": "马", + "疽": "疒", + "掬": "扌", + "倦": "亻", + "桊": "木", + "狷": "犭", + "绢": "纟", + "卷": "厄", + "眷": "目", + "鄄": "阝", + "锩": "钅", + "镌": "钅", + "蠲": "虫", + "娟": "女", + "捐": "扌", + "涓": "氵", + "鹃": "鸟", + "孓": "子", + "决": "冫", + "诀": "讠", + "抉": "扌", + "玦": "王", + "珏": "王", + "绝": "纟", + "觉": "见", + "崛": "山", + "掘": "扌", + "桷": "木", + "觖": "角", + "厥": "厂", + "镢": "钅", + "獗": "犭", + "蕨": "艹", + "劂": "刂", + "谲": "讠", + "矍": "目", + "橛": "木", + "爵": "爫", + "爝": "火", + "攫": "扌", + "倔": "亻", + "蹶": "足", + "噘": "口", + "撅": "扌", + "隽": "隹", + "骏": "马", + "竣": "立", + "俊": "亻", + "郡": "阝", + "峻": "山", + "捃": "扌", + "军": "冖", + "君": "口", + "均": "土", + "钧": "钅", + "麇": "鹿", + "皲": "皮", + "菌": "艹", + "筠": "竹", + "卡": "卜", + "佧": "亻", + "胩": "月", + "咔": "口", + "咖": "口", + "喀": "口", + "忾": "忄", + "锴": "钅", + "凯": "几", + "剀": "刂", + "垲": "土", + "恺": "忄", + "铠": "钅", + "慨": "忄", + "蒈": "艹", + "楷": "木", + "锎": "钅", + "开": "廾", + "揩": "扌", + "阚": "门", + "瞰": "目", + "看": "目", + "坎": "土", + "侃": "亻", + "砍": "石", + "莰": "艹", + "槛": "木", + "刊": "刂", + "勘": "力", + "龛": "龙", + "堪": "土", + "戡": "戈", + "扛": "扌", + "亢": "亠", + "伉": "亻", + "囥": "囗", + "抗": "扌", + "炕": "火", + "钪": "钅", + "闶": "门", + "康": "广", + "慷": "忄", + "糠": "米", + "鱧": "魚", + "铐": "钅", + "犒": "牜", + "靠": "非", + "考": "聅", + "拷": "扌", + "栲": "木", + "烤": "火", + "尻": "尸", + "壳": "士", + "咳": "口", + "客": "宀", + "恪": "忄", + "课": "讠", + "氪": "气", + "骒": "马", + "缂": "纟", + "克": "十", + "刻": "刂", + "溘": "氵", + "锞": "钅", + "渴": "氵", + "可": "口", + "岢": "山", + "坷": "土", + "屙": "尸", + "苛": "艹", + "柯": "木", + "珂": "王", + "科": "禾", + "轲": "车", + "疴": "疒", + "钶": "钅", + "棵": "木", + "髁": "骨", + "稞": "禾", + "窠": "穴", + "颗": "页", + "瞌": "目", + "磕": "石", + "蝌": "虫", + "嗑": "口", + "颏": "页", + "裉": "衤", + "肯": "月", + "垦": "土", + "恳": "心", + "啃": "口", + "坑": "土", + "吭": "口", + "铿": "钅", + "控": "扌", + "孔": "子", + "恐": "心", + "箜": "竹", + "空": "穴", + "倥": "亻", + "崆": "山", + "蔻": "艹", + "叩": "口", + "扣": "扌", + "寇": "宀", + "筘": "竹", + "口": "口", + "抠": "扌", + "芤": "艹", + "眍": "目", + "库": "广", + "绔": "纟", + "喾": "口", + "裤": "衤", + "酷": "酉", + "苦": "艹", + "刳": "刂", + "枯": "木", + "哭": "口", + "堀": "土", + "窟": "穴", + "骷": "骨", + "挎": "扌", + "胯": "月", + "跨": "足", + "侉": "亻", + "垮": "土", + "夸": "大", + "块": "土", + "快": "忄", + "侩": "亻", + "郐": "阝", + "哙": "口", + "狯": "犭", + "脍": "月", + "筷": "竹", + "蒯": "艹", + "款": "欠", + "宽": "宀", + "髋": "骨", + "狂": "犭", + "诳": "讠", + "邝": "阝", + "圹": "土", + "纩": "纟", + "况": "冫", + "旷": "日", + "矿": "石", + "眶": "目", + "贶": "贝", + "框": "木", + "夼": "大", + "匡": "匚", + "诓": "讠", + "哐": "口", + "筐": "竹", + "逵": "辶", + "奎": "大", + "夔": "夂", + "馗": "首", + "喹": "口", + "揆": "扌", + "葵": "艹", + "暌": "日", + "魁": "鬼", + "睽": "目", + "蝰": "虫", + "匮": "匚", + "喟": "口", + "愦": "忄", + "愧": "忄", + "溃": "氵", + "蒉": "艹", + "馈": "饣", + "篑": "竹", + "聩": "耳", + "跬": "足", + "岿": "山", + "悝": "忄", + "盔": "皿", + "窥": "穴", + "亏": "二", + "困": "囗", + "悃": "忄", + "捆": "扌", + "阃": "门", + "壸": "士", + "梱": "木", + "锟": "钅", + "髡": "髟", + "醌": "酉", + "鲲": "鱼", + "坤": "土", + "昆": "日", + "焜": "火", + "琨": "王", + "扩": "扌", + "括": "扌", + "蛞": "虫", + "阔": "门", + "廓": "广", + "旯": "日", + "砬": "石", + "剌": "刂", + "腊": "月", + "瘌": "疒", + "蜡": "虫", + "辣": "辛", + "喇": "口", + "邋": "辶", + "垃": "土", + "拉": "扌", + "啦": "口", + "来": "木", + "崃": "山", + "徕": "彳", + "涞": "氵", + "莱": "艹", + "铼": "钅", + "赉": "贝", + "睐": "目", + "赖": "贝", + "濑": "氵", + "癞": "疒", + "籁": "竹", + "兰": "乺", + "岚": "山", + "拦": "扌", + "栏": "木", + "婪": "女", + "阑": "门", + "蓝": "艹", + "谰": "讠", + "澜": "氵", + "褴": "衤", + "斓": "文", + "篮": "竹", + "镧": "钅", + "烂": "火", + "滥": "氵", + "览": "见", + "揽": "扌", + "缆": "纟", + "榄": "木", + "漤": "氵", + "罱": "罒", + "懒": "忄", + "郎": "阝", + "狼": "犭", + "廊": "广", + "琅": "王", + "阆": "门", + "榔": "木", + "稂": "禾", + "锒": "钅", + "螂": "虫", + "浪": "氵", + "蒗": "艹", + "莨": "艹", + "朗": "月", + "啷": "口", + "劳": "力", + "牢": "牛", + "嫪": "女", + "崂": "山", + "痨": "疒", + "铹": "钅", + "醪": "酉", + "涝": "氵", + "烙": "火", + "耢": "耒", + "酪": "酉", + "唠": "口", + "铑": "钅", + "老": "老", + "佬": "亻", + "姥": "女", + "栳": "木", + "捞": "扌", + "了": "乙", + "仂": "亻", + "乐": "丿", + "叻": "口", + "泐": "氵", + "勒": "力", + "鳓": "鱼", + "嘞": "口", + "雷": "雨", + "嫘": "女", + "缧": "纟", + "檑": "木", + "镭": "钅", + "羸": "羊", + "肋": "月", + "泪": "氵", + "类": "米", + "累": "糸", + "酹": "酉", + "擂": "扌", + "傫": "亻", + "磊": "石", + "蕾": "艹", + "儡": "亻", + "耒": "耒", + "诔": "讠", + "垒": "土", + "塄": "土", + "棱": "木", + "楞": "木", + "愣": "忄", + "冷": "冫", + "厘": "厂", + "梨": "木", + "狸": "犭", + "离": "忄", + "鲡": "鱼", + "黎": "黍", + "篱": "竹", + "骊": "马", + "犁": "牛", + "喱": "口", + "鹂": "鸟", + "漓": "氵", + "缡": "纟", + "蓠": "艹", + "蜊": "虫", + "嫠": "女", + "璃": "王", + "黧": "黑", + "蠡": "虫", + "罹": "罒", + "藜": "艹", + "釐": "褃", + "莉": "艹", + "莅": "艹", + "唳": "口", + "笠": "竹", + "粒": "米", + "粝": "米", + "蛎": "虫", + "傈": "亻", + "痢": "疒", + "詈": "言", + "疠": "疒", + "雳": "雨", + "溧": "氵", + "力": "力", + "历": "厂", + "厉": "厂", + "立": "立", + "吏": "口", + "丽": "丶", + "利": "刂", + "励": "力", + "呖": "口", + "坜": "土", + "沥": "氵", + "苈": "艹", + "例": "亻", + "戾": "户", + "枥": "木", + "隶": "隶", + "俐": "亻", + "俪": "亻", + "栎": "木", + "疬": "疒", + "荔": "艹", + "轹": "车", + "郦": "阝", + "栗": "木", + "猁": "犭", + "砺": "石", + "砾": "石", + "篥": "竹", + "礼": "礻", + "李": "木", + "里": "里", + "俚": "亻", + "哩": "口", + "娌": "女", + "逦": "辶", + "理": "王", + "锂": "钅", + "鲤": "鱼", + "澧": "氵", + "醴": "酉", + "鳢": "鱼", + "奁": "大", + "连": "辶", + "帘": "巾", + "怜": "忄", + "涟": "氵", + "莲": "艹", + "联": "耳", + "裢": "衤", + "廉": "广", + "鲢": "鱼", + "濂": "氵", + "臁": "月", + "镰": "钅", + "蠊": "虫", + "链": "钅", + "楝": "木", + "潋": "氵", + "练": "纟", + "炼": "火", + "恋": "心", + "殓": "歹", + "敛": "攵", + "琏": "王", + "脸": "月", + "裣": "衤", + "蔹": "艹", + "良": "艮", + "凉": "冫", + "梁": "木", + "涼": "氵", + "椋": "木", + "粮": "米", + "粱": "米", + "墚": "土", + "踉": "足", + "亮": "亠", + "谅": "讠", + "辆": "车", + "晾": "日", + "量": "里", + "靓": "青", + "魉": "鬼", + "两": "一", + "俩": "亻", + "辽": "辶", + "疗": "疒", + "聊": "耳", + "僚": "亻", + "寥": "宀", + "鹩": "鸟", + "嘹": "口", + "寮": "宀", + "撩": "扌", + "獠": "犭", + "缭": "纟", + "燎": "火", + "潦": "氵", + "撂": "扌", + "尥": "尢", + "料": "斗", + "镣": "钅", + "廖": "广", + "钌": "钅", + "蓼": "艹", + "躐": "足", + "鬣": "髟", + "列": "刂", + "劣": "力", + "冽": "冫", + "裂": "衣", + "趔": "走", + "洌": "氵", + "埒": "土", + "烈": "灬", + "捩": "扌", + "猎": "犭", + "咧": "口", + "鳞": "鱼", + "麟": "鹿", + "邻": "阝", + "林": "木", + "临": "丨", + "啉": "口", + "淋": "氵", + "琳": "王", + "粼": "米", + "嶙": "山", + "遴": "辶", + "辚": "车", + "霖": "雨", + "瞵": "目", + "磷": "石", + "鏻": "釒", + "躏": "足", + "蔺": "艹", + "膦": "月", + "赁": "贝", + "吝": "口", + "凛": "冫", + "廪": "广", + "懔": "忄", + "檩": "木", + "拎": "扌", + "伶": "亻", + "灵": "火", + "囹": "囗", + "泠": "氵", + "苓": "艹", + "柃": "木", + "玲": "王", + "瓴": "瓦", + "凌": "冫", + "菱": "艹", + "蛉": "虫", + "铃": "钅", + "陵": "阝", + "棂": "木", + "绫": "纟", + "羚": "羊", + "翎": "羽", + "聆": "耳", + "零": "雨", + "龄": "齿", + "鲮": "鱼", + "酃": "阝", + "渞": "氵", + "令": "人", + "另": "口", + "呤": "口", + "领": "页", + "岭": "山", + "刘": "刂", + "瘤": "疒", + "遛": "辶", + "馏": "饣", + "骝": "马", + "榴": "木", + "浏": "氵", + "流": "氵", + "留": "田", + "琉": "王", + "硫": "石", + "旒": "方", + "鎏": "金", + "镏": "钅", + "鹨": "鸟", + "六": "八", + "柳": "木", + "绺": "纟", + "锍": "钅", + "溜": "氵", + "熘": "火", + "栊": "木", + "珑": "王", + "胧": "月", + "砻": "石", + "龙": "龙", + "咙": "口", + "泷": "氵", + "茏": "艹", + "笼": "竹", + "聋": "耳", + "隆": "阝", + "癃": "疒", + "窿": "穴", + "陇": "阝", + "垄": "土", + "拢": "扌", + "髅": "骨", + "耧": "耒", + "蝼": "虫", + "娄": "女", + "蒌": "艹", + "楼": "木", + "陋": "阝", + "漏": "氵", + "瘘": "疒", + "镂": "钅", + "嵝": "山", + "搂": "扌", + "篓": "竹", + "喽": "口", + "氇": "毛", + "鸬": "鸟", + "舻": "舟", + "颅": "页", + "鲈": "鱼", + "卢": "卜", + "庐": "广", + "芦": "艹", + "垆": "土", + "泸": "氵", + "炉": "火", + "栌": "木", + "胪": "月", + "轳": "车", + "露": "雨", + "陆": "阝", + "碌": "石", + "路": "足", + "漉": "氵", + "戮": "戈", + "逯": "辶", + "鹿": "鹿", + "琭": "王", + "禄": "礻", + "录": "王", + "赂": "贝", + "辂": "车", + "渌": "氵", + "麓": "鹿", + "甪": "用", + "辘": "车", + "潞": "氵", + "璐": "王", + "簏": "竹", + "鹭": "鸟", + "卤": "卜", + "虏": "虍", + "掳": "扌", + "鲁": "鱼", + "橹": "木", + "镥": "钅", + "噜": "口", + "撸": "扌", + "驴": "马", + "闾": "门", + "榈": "木", + "律": "彳", + "虑": "虍", + "率": "玄", + "绿": "纟", + "氯": "气", + "滤": "氵", + "履": "尸", + "捋": "扌", + "吕": "口", + "侣": "亻", + "旅": "方", + "稆": "禾", + "屡": "尸", + "缕": "纟", + "膂": "月", + "偻": "亻", + "孪": "子", + "峦": "山", + "挛": "手", + "栾": "木", + "鸾": "鸟", + "脔": "肉", + "滦": "氵", + "銮": "金", + "娈": "女", + "乱": "乙", + "卵": "卩", + "略": "田", + "锊": "钅", + "掠": "扌", + "抡": "扌", + "仑": "人", + "伦": "亻", + "囵": "囗", + "沦": "氵", + "纶": "纟", + "轮": "车", + "论": "讠", + "罗": "罒", + "猡": "犭", + "脶": "月", + "萝": "艹", + "逻": "辶", + "椤": "木", + "锣": "钅", + "箩": "竹", + "骡": "马", + "螺": "虫", + "落": "艹", + "摞": "扌", + "漯": "氵", + "雒": "隹", + "泺": "氵", + "洛": "氵", + "络": "纟", + "荦": "艹", + "骆": "马", + "珞": "王", + "跞": "足", + "裸": "衤", + "瘰": "疒", + "蠃": "虫", + "倮": "亻", + "吗": "口", + "嘛": "口", + "麻": "麻", + "蟆": "虫", + "杩": "木", + "祃": "礻", + "骂": "马", + "傌": "亻", + "马": "马", + "犸": "犭", + "玛": "王", + "码": "石", + "蚂": "虫", + "妈": "女", + "埋": "土", + "霾": "雨", + "唛": "口", + "劢": "力", + "迈": "辶", + "麦": "麦", + "卖": "十", + "脉": "月", + "买": "乙", + "荬": "艹", + "蛮": "虫", + "馒": "饣", + "樠": "木", + "瞒": "目", + "鞔": "革", + "鳗": "鱼", + "曼": "曰", + "谩": "讠", + "墁": "土", + "幔": "巾", + "慢": "忄", + "漫": "氵", + "缦": "纟", + "蔓": "艹", + "熳": "火", + "镘": "钅", + "满": "氵", + "螨": "虫", + "颟": "页", + "邙": "阝", + "忙": "忄", + "芒": "艹", + "尨": "尢", + "盲": "目", + "茫": "艹", + "硭": "石", + "氓": "氏", + "莽": "艹", + "漭": "氵", + "蟒": "虫", + "蟊": "虫", + "毛": "毛", + "矛": "矛", + "牦": "牜", + "茅": "艹", + "旄": "方", + "茆": "艹", + "锚": "钅", + "髦": "髟", + "茂": "艹", + "冒": "冂", + "懋": "心", + "贸": "贝", + "耄": "聅", + "袤": "衣", + "帽": "巾", + "鄚": "阝", + "瑁": "王", + "瞀": "目", + "貌": "豸", + "卯": "卩", + "峁": "山", + "泖": "氵", + "昴": "日", + "铆": "钅", + "猫": "犭", + "么": "丿", + "麽": "麻", + "媒": "女", + "嵋": "山", + "湄": "氵", + "猸": "犭", + "楣": "木", + "煤": "火", + "没": "氵", + "枚": "木", + "玫": "王", + "眉": "目", + "莓": "艹", + "梅": "木", + "酶": "酉", + "镅": "钅", + "鹛": "鸟", + "霉": "雨", + "妹": "女", + "魅": "鬼", + "昧": "日", + "袂": "衤", + "媚": "女", + "寐": "宀", + "每": "母", + "美": "羊", + "浼": "氵", + "渼": "氵", + "镁": "钅", + "门": "门", + "扪": "扌", + "钔": "钅", + "们": "亻", + "闷": "门", + "焖": "火", + "懑": "心", + "虻": "虫", + "朦": "月", + "檬": "木", + "萌": "艹", + "盟": "皿", + "甍": "瓦", + "瞢": "目", + "礞": "石", + "艨": "舟", + "蒙": "艹", + "孟": "子", + "梦": "木", + "懵": "忄", + "蠓": "虫", + "锰": "钅", + "艋": "舟", + "蜢": "虫", + "勐": "力", + "猛": "犭", + "弥": "弓", + "祢": "礻", + "迷": "辶", + "猕": "犭", + "谜": "讠", + "醚": "酉", + "糜": "米", + "縻": "糸", + "麋": "鹿", + "靡": "非", + "蘼": "艹", + "汨": "氵", + "宓": "宀", + "泌": "氵", + "觅": "见", + "秘": "禾", + "密": "宀", + "幂": "巾", + "谧": "讠", + "嘧": "口", + "蜜": "虫", + "脒": "月", + "芈": "卝", + "弭": "弓", + "洣": "氵", + "敉": "攵", + "米": "米", + "咪": "口", + "眯": "目", + "眠": "目", + "绵": "纟", + "棉": "木", + "面": "面", + "渑": "氵", + "腼": "月", + "免": "刀", + "沔": "氵", + "黾": "黾", + "勉": "力", + "眄": "目", + "娩": "女", + "冕": "冂", + "湎": "氵", + "缅": "纟", + "苗": "艹", + "描": "扌", + "瞄": "目", + "鹋": "鸟", + "妙": "女", + "庙": "广", + "杪": "木", + "眇": "目", + "秒": "禾", + "淼": "水", + "渺": "氵", + "缈": "纟", + "藐": "艹", + "邈": "辶", + "喵": "口", + "蔑": "艹", + "篾": "竹", + "蠛": "虫", + "灭": "火", + "咩": "口", + "民": "氏", + "岷": "山", + "苠": "艹", + "珉": "王", + "缗": "纟", + "昮": "日", + "愍": "心", + "鳘": "鱼", + "闵": "门", + "抿": "扌", + "泯": "氵", + "闽": "门", + "悯": "忄", + "敏": "攵", + "湣": "氵", + "皿": "皿", + "茗": "艹", + "冥": "冖", + "铭": "钅", + "鄍": "阝", + "溟": "氵", + "暝": "日", + "瞑": "目", + "螟": "虫", + "名": "口", + "明": "日", + "鸣": "鸟", + "命": "口", + "酩": "酉", + "谬": "讠", + "缪": "纟", + "摩": "手", + "磨": "石", + "谟": "讠", + "嫫": "女", + "馍": "饣", + "摹": "手", + "模": "木", + "膜": "月", + "蘑": "艹", + "魔": "鬼", + "嬷": "女", + "貉": "豸", + "抹": "扌", + "镆": "钅", + "耱": "耒", + "默": "黑", + "貘": "豸", + "末": "木", + "殁": "歹", + "沫": "氵", + "茉": "艹", + "陌": "阝", + "寞": "宀", + "漠": "氵", + "蓦": "艹", + "貊": "豸", + "墨": "土", + "瘼": "疒", + "秣": "禾", + "莫": "艹", + "摸": "扌", + "牟": "牛", + "侔": "亻", + "眸": "目", + "谋": "讠", + "鍪": "金", + "蝥": "虫", + "蛑": "虫", + "某": "木", + "哞": "口", + "毪": "毛", + "钼": "钅", + "募": "力", + "墓": "土", + "幕": "巾", + "睦": "目", + "木": "木", + "仫": "亻", + "目": "目", + "沐": "氵", + "牧": "牜", + "苜": "艹", + "穆": "禾", + "慕": "小", + "暮": "日", + "亩": "亠", + "牡": "牜", + "姆": "女", + "拇": "扌", + "母": "母", + "拿": "手", + "镎": "钅", + "呐": "口", + "那": "阝", + "纳": "纟", + "肭": "月", + "娜": "女", + "衲": "衤", + "钠": "钅", + "捺": "扌", + "哪": "口", + "奈": "大", + "柰": "木", + "耐": "而", + "萘": "艹", + "鼐": "鼎", + "乃": "丿", + "奶": "女", + "艿": "艹", + "氖": "气", + "南": "十", + "难": "隹", + "喃": "口", + "男": "田", + "楠": "木", + "赧": "赤", + "腩": "月", + "蝻": "虫", + "囡": "囗", + "囊": "口", + "馕": "饣", + "曩": "日", + "攮": "扌", + "瀼": "氵", + "囔": "口", + "呶": "口", + "挠": "扌", + "硇": "石", + "猱": "犭", + "蛲": "虫", + "闹": "门", + "淖": "氵", + "媍": "女", + "垴": "土", + "恼": "忄", + "脑": "月", + "瑙": "王", + "孬": "子", + "呢": "口", + "讷": "讠", + "内": "冂", + "馁": "饣", + "嫩": "女", + "能": "月", + "铌": "钅", + "猊": "犭", + "尼": "尸", + "坭": "土", + "怩": "忄", + "泥": "氵", + "倪": "亻", + "霓": "雨", + "鲵": "鱼", + "您": "心", + "昵": "日", + "逆": "辶", + "匿": "匚", + "溺": "氵", + "睨": "目", + "腻": "月", + "伲": "亻", + "你": "亻", + "拟": "扌", + "旎": "方", + "妮": "女", + "鲇": "鱼", + "黏": "黍", + "年": "干", + "廿": "廾", + "念": "心", + "埝": "土", + "捻": "扌", + "辇": "车", + "撵": "扌", + "碾": "石", + "辗": "车", + "蔫": "艹", + "拈": "扌", + "娘": "女", + "酿": "酉", + "尿": "尸", + "脲": "月", + "鸟": "鸟", + "茑": "艹", + "袅": "衣", + "嬲": "女", + "陧": "阝", + "涅": "氵", + "聂": "耳", + "臬": "自", + "啮": "口", + "嗫": "口", + "镊": "钅", + "镍": "钅", + "颞": "页", + "蹑": "足", + "孽": "子", + "蘖": "艹", + "乜": "乙", + "捏": "扌", + "恁": "心", + "宁": "宀", + "咛": "口", + "狞": "犭", + "柠": "木", + "聍": "耳", + "凝": "冫", + "甯": "用", + "佞": "亻", + "泞": "氵", + "拧": "扌", + "牛": "牛", + "拗": "扌", + "忸": "忄", + "扭": "扌", + "狃": "犭", + "纽": "纟", + "杻": "木", + "钮": "钅", + "妞": "女", + "农": "冖", + "侬": "亻", + "哝": "口", + "浓": "氵", + "脓": "月", + "弄": "廾", + "耨": "耒", + "奴": "女", + "孥": "子", + "驽": "马", + "怒": "心", + "努": "力", + "弩": "弓", + "胬": "肉", + "恧": "心", + "衄": "血", + "女": "女", + "钕": "钅", + "暖": "日", + "疟": "疒", + "虐": "虍", + "挪": "扌", + "傩": "亻", + "诺": "讠", + "喏": "口", + "搦": "扌", + "锘": "钅", + "懦": "忄", + "糯": "米", + "哦": "口", + "噢": "口", + "怄": "忄", + "呕": "口", + "偶": "亻", + "耦": "耒", + "藕": "艹", + "沤": "氵", + "讴": "讠", + "欧": "欠", + "殴": "殳", + "瓯": "瓦", + "鸥": "鸟", + "杷": "木", + "爬": "爪", + "耙": "耒", + "琶": "王", + "筢": "竹", + "帕": "巾", + "怕": "忄", + "啪": "口", + "葩": "艹", + "趴": "足", + "哌": "口", + "派": "氵", + "湃": "氵", + "蒎": "艹", + "牌": "片", + "俳": "亻", + "徘": "彳", + "排": "扌", + "拍": "扌", + "爿": "爿", + "柈": "木", + "盘": "皿", + "蟠": "虫", + "磐": "石", + "蹒": "足", + "泮": "氵", + "叛": "又", + "盼": "目", + "畔": "田", + "袢": "衤", + "判": "刂", + "襻": "衤", + "坢": "土", + "潘": "氵", + "攀": "手", + "庞": "广", + "逄": "辶", + "旁": "方", + "螃": "虫", + "彷": "彳", + "磅": "石", + "胖": "月", + "耪": "耒", + "滂": "氵", + "乓": "丿", + "刨": "刂", + "咆": "口", + "庖": "广", + "狍": "犭", + "袍": "衤", + "匏": "勹", + "泡": "氵", + "疱": "疒", + "炮": "火", + "跑": "足", + "抛": "扌", + "脬": "月", + "陪": "阝", + "培": "土", + "赔": "贝", + "锫": "钅", + "裴": "衣", + "沛": "氵", + "佩": "亻", + "帔": "巾", + "旆": "方", + "珮": "王", + "配": "酉", + "辔": "车", + "霈": "雨", + "呸": "口", + "胚": "月", + "醅": "酉", + "盆": "皿", + "湓": "氵", + "喷": "口", + "朋": "月", + "堋": "土", + "蟛": "虫", + "彭": "彡", + "棚": "木", + "硼": "石", + "蓬": "艹", + "鹏": "鸟", + "澎": "氵", + "篷": "竹", + "膨": "月", + "苖": "艹", + "碰": "石", + "捧": "扌", + "嘭": "口", + "砰": "石", + "烹": "灬", + "怦": "忄", + "抨": "扌", + "罴": "罒", + "蜱": "虫", + "貔": "豸", + "鼙": "鼓", + "铍": "钅", + "琵": "王", + "脾": "月", + "皮": "皮", + "芘": "艹", + "枇": "木", + "毗": "比", + "疲": "疒", + "蚍": "虫", + "郫": "阝", + "陴": "阝", + "啤": "口", + "埤": "土", + "辟": "辛", + "屁": "尸", + "媲": "女", + "睥": "目", + "僻": "亻", + "甓": "瓦", + "譬": "言", + "匹": "匚", + "仳": "亻", + "圮": "土", + "擗": "扌", + "癖": "疒", + "痞": "疒", + "劈": "刀", + "噼": "口", + "霹": "雨", + "砒": "石", + "丕": "一", + "伾": "亻", + "批": "扌", + "邳": "阝", + "坯": "土", + "披": "扌", + "徧": "彳", + "骈": "马", + "胼": "月", + "蹁": "足", + "骗": "马", + "片": "片", + "谝": "讠", + "偏": "亻", + "犏": "牜", + "篇": "竹", + "翩": "羽", + "瓢": "瓜", + "嫖": "女", + "票": "示", + "嘌": "口", + "殍": "歹", + "瞟": "目", + "莩": "艹", + "剽": "刂", + "漂": "氵", + "缥": "纟", + "飘": "风", + "螵": "虫", + "撇": "扌", + "苤": "艹", + "瞥": "目", + "氕": "气", + "颦": "页", + "贫": "贝", + "嫔": "女", + "频": "页", + "牝": "牜", + "聘": "耳", + "品": "口", + "榀": "木", + "姘": "女", + "拼": "扌", + "拚": "扌", + "鲆": "鱼", + "平": "干", + "评": "讠", + "凭": "几", + "坪": "土", + "苹": "艹", + "屏": "尸", + "枰": "木", + "洴": "氵", + "瓶": "瓦", + "萍": "艹", + "俜": "亻", + "乒": "丿", + "娉": "女", + "婆": "女", + "鄱": "阝", + "皤": "白", + "迫": "辶", + "珀": "王", + "魄": "鬼", + "粕": "米", + "破": "石", + "叵": "口", + "钷": "钅", + "笸": "竹", + "钋": "钅", + "坡": "土", + "泼": "氵", + "颇": "页", + "掊": "扌", + "裒": "衣", + "剖": "刂", + "仆": "亻", + "镤": "钅", + "蒲": "艹", + "璞": "王", + "濮": "氵", + "匍": "勹", + "莆": "艹", + "菩": "艹", + "葡": "艹", + "脯": "月", + "铺": "钅", + "曝": "日", + "氆": "毛", + "镨": "钅", + "蹼": "足", + "朴": "木", + "圃": "囗", + "埔": "土", + "浦": "氵", + "普": "日", + "溥": "氵", + "谱": "讠", + "噗": "口", + "扑": "扌", + "亓": "二", + "祁": "礻", + "齐": "齐", + "圻": "土", + "岐": "山", + "芪": "艹", + "其": "八", + "奇": "大", + "歧": "止", + "淇": "氵", + "祈": "礻", + "耆": "聅", + "脐": "月", + "颀": "页", + "崎": "山", + "旗": "方", + "綦": "糸", + "畦": "田", + "萁": "艹", + "骐": "马", + "骑": "马", + "棋": "木", + "琦": "王", + "琪": "王", + "祺": "礻", + "蛴": "虫", + "麒": "鹿", + "蜞": "虫", + "蕲": "艹", + "荠": "艹", + "鳍": "鱼", + "鍂": "釒", + "器": "口", + "憩": "心", + "葺": "艹", + "碛": "石", + "气": "气", + "讫": "讠", + "汔": "氵", + "迄": "辶", + "弃": "廾", + "汽": "氵", + "泣": "氵", + "契": "大", + "砌": "石", + "槭": "木", + "起": "走", + "绮": "纟", + "乞": "乙", + "企": "人", + "屺": "山", + "岂": "山", + "芑": "艹", + "启": "口", + "杞": "木", + "綮": "糸", + "漆": "氵", + "嘁": "口", + "蹊": "足", + "七": "一", + "沏": "氵", + "妻": "女", + "柒": "木", + "凄": "冫", + "栖": "木", + "桤": "木", + "戚": "戈", + "萋": "艹", + "期": "月", + "欺": "欠", + "髂": "骨", + "恰": "忄", + "洽": "氵", + "掐": "扌", + "葜": "艹", + "箝": "竹", + "潜": "氵", + "黔": "黑", + "虔": "虍", + "钱": "钅", + "钳": "钅", + "乾": "乙", + "掮": "扌", + "前": "刂", + "荨": "艹", + "钤": "钅", + "欠": "欠", + "芡": "艹", + "茜": "艹", + "倩": "亻", + "堑": "土", + "歉": "欠", + "嵌": "山", + "椠": "木", + "遣": "辶", + "谴": "讠", + "缱": "纟", + "浅": "氵", + "肷": "月", + "褰": "衣", + "钎": "钅", + "牵": "牛", + "悭": "忄", + "铅": "钅", + "谦": "讠", + "搴": "手", + "愆": "心", + "签": "竹", + "骞": "马", + "千": "十", + "仟": "亻", + "阡": "阝", + "扦": "扌", + "芊": "艹", + "迁": "辶", + "佥": "人", + "岍": "山", + "强": "弓", + "墙": "土", + "嫱": "女", + "蔷": "艹", + "樯": "木", + "炝": "火", + "呛": "口", + "抢": "扌", + "羟": "羊", + "襁": "衤", + "羌": "羊", + "戕": "戈", + "戗": "戈", + "枪": "木", + "锵": "钅", + "镪": "钅", + "跄": "足", + "腔": "月", + "蜣": "虫", + "锖": "钅", + "鸧": "鸟", + "乔": "丿", + "侨": "亻", + "荞": "艹", + "桥": "木", + "谯": "讠", + "鞒": "革", + "樵": "木", + "瞧": "目", + "憔": "忄", + "峤": "山", + "鞘": "革", + "俏": "亻", + "诮": "讠", + "峭": "山", + "窍": "穴", + "翘": "羽", + "撬": "扌", + "偢": "亻", + "巧": "工", + "愀": "忄", + "橇": "木", + "缲": "纟", + "悄": "忄", + "硗": "石", + "跷": "足", + "鄡": "阝", + "劁": "刂", + "敲": "攴", + "锹": "钅", + "茄": "艹", + "惬": "忄", + "妾": "女", + "怯": "忄", + "窃": "穴", + "挈": "手", + "箧": "竹", + "锲": "钅", + "慊": "忄", + "鄐": "阝", + "郄": "阝", + "且": "一", + "切": "刀", + "琴": "王", + "芩": "艹", + "芹": "艹", + "秦": "禾", + "禽": "忄", + "勤": "力", + "嗪": "口", + "溱": "氵", + "噙": "口", + "擒": "扌", + "檎": "木", + "螓": "虫", + "儭": "亻", + "吣": "口", + "揿": "扌", + "沁": "氵", + "锓": "钅", + "寝": "宀", + "亲": "亠", + "侵": "亻", + "钦": "钅", + "衾": "衣", + "嵚": "山", + "情": "忄", + "晴": "日", + "氰": "气", + "擎": "手", + "檠": "木", + "黥": "黑", + "磬": "石", + "罄": "缶", + "庆": "广", + "箐": "竹", + "苘": "艹", + "顷": "页", + "请": "讠", + "謦": "言", + "青": "青", + "氢": "气", + "轻": "车", + "倾": "亻", + "卿": "卩", + "圊": "囗", + "清": "氵", + "蜻": "虫", + "鲭": "鱼", + "跫": "足", + "銎": "金", + "琼": "王", + "蛩": "虫", + "邛": "阝", + "穷": "穴", + "穹": "穴", + "茕": "艹", + "筇": "竹", + "囚": "囗", + "犰": "犭", + "酋": "酉", + "求": "水", + "虬": "虫", + "泅": "氵", + "俅": "亻", + "鼽": "鼻", + "遒": "辶", + "裘": "衣", + "逑": "辶", + "球": "王", + "赇": "贝", + "巯": "工", + "糗": "米", + "逎": "辶", + "鳅": "鱼", + "楸": "木", + "蚯": "虫", + "秋": "禾", + "丘": "丿", + "邱": "阝", + "湫": "氵", + "瞿": "目", + "癯": "疒", + "衢": "行", + "璩": "王", + "鸲": "鸟", + "渠": "氵", + "劬": "力", + "朐": "月", + "蠼": "虫", + "蕖": "艹", + "磲": "石", + "蘧": "艹", + "氍": "毛", + "阒": "门", + "觑": "见", + "趣": "走", + "去": "厶", + "龋": "齿", + "取": "又", + "娶": "女", + "曲": "曰", + "岖": "山", + "诎": "讠", + "驱": "马", + "屈": "尸", + "祛": "礻", + "蛆": "虫", + "躯": "身", + "蛐": "虫", + "趋": "走", + "麴": "麦", + "黢": "黑", + "区": "匚", + "痊": "疒", + "铨": "钅", + "筌": "竹", + "颧": "页", + "蜷": "虫", + "醛": "酉", + "鬈": "髟", + "全": "入", + "权": "木", + "诠": "讠", + "泉": "水", + "荃": "艹", + "拳": "手", + "辁": "车", + "劝": "力", + "券": "刀", + "畎": "田", + "绻": "纟", + "犬": "犬", + "悛": "忄", + "圈": "囗", + "瘸": "疒", + "却": "卩", + "阕": "门", + "悫": "心", + "雀": "隹", + "确": "石", + "阙": "门", + "鹊": "鸟", + "榷": "木", + "炔": "火", + "缺": "缶", + "裙": "衤", + "群": "羊", + "逡": "辶", + "蚺": "虫", + "然": "灬", + "髯": "髟", + "燃": "火", + "冉": "冂", + "苒": "艹", + "染": "木", + "禳": "礻", + "瓤": "瓜", + "穰": "禾", + "让": "讠", + "嚷": "口", + "壤": "土", + "攘": "扌", + "荛": "艹", + "饶": "饣", + "桡": "木", + "娆": "女", + "绕": "纟", + "扰": "扌", + "热": "灬", + "惹": "心", + "仁": "亻", + "壬": "士", + "人": "人", + "衽": "衤", + "刃": "刀", + "认": "讠", + "仞": "亻", + "讱": "讠", + "任": "亻", + "纫": "纟", + "妊": "女", + "轫": "车", + "韧": "韦", + "饪": "饣", + "忍": "心", + "荏": "艹", + "稔": "禾", + "仍": "亻", + "礽": "礻", + "扔": "扌", + "日": "日", + "戎": "戈", + "肜": "月", + "狨": "犭", + "绒": "纟", + "茸": "艹", + "荣": "艹", + "容": "宀", + "嵘": "山", + "熔": "火", + "蝾": "虫", + "融": "虫", + "溶": "氵", + "蓉": "艹", + "榕": "木", + "閒": "钅", + "冗": "冖", + "柔": "木", + "揉": "扌", + "蹂": "足", + "鞣": "革", + "糅": "米", + "肉": "肉", + "儒": "亻", + "如": "女", + "茹": "艹", + "铷": "钅", + "孺": "子", + "濡": "氵", + "薷": "艹", + "襦": "衤", + "蠕": "虫", + "颥": "页", + "嚅": "口", + "入": "入", + "洳": "氵", + "溽": "氵", + "缛": "纟", + "蓐": "艹", + "褥": "衤", + "汝": "氵", + "乳": "乙", + "辱": "辰", + "鄏": "阝", + "阮": "阝", + "朊": "月", + "软": "车", + "蕤": "艹", + "芮": "艹", + "枘": "木", + "蚋": "虫", + "锐": "钅", + "瑞": "王", + "睿": "目", + "蕊": "艹", + "闰": "门", + "润": "氵", + "若": "艹", + "偌": "亻", + "弱": "弓", + "箬": "竹", + "飒": "风", + "脎": "月", + "萨": "艹", + "卅": "十", + "洒": "氵", + "仨": "亻", + "撒": "扌", + "赛": "贝", + "塞": "土", + "腮": "月", + "噻": "口", + "鳃": "鱼", + "散": "攵", + "馓": "饣", + "伞": "人", + "三": "一", + "叁": "厶", + "毵": "毛", + "彡": "彡", + "丧": "一", + "嗓": "口", + "搡": "扌", + "磉": "石", + "颡": "页", + "桑": "木", + "臊": "月", + "瘙": "疒", + "扫": "扌", + "嫂": "女", + "搔": "扌", + "骚": "马", + "缫": "纟", + "色": "色", + "涩": "氵", + "啬": "口", + "铯": "钅", + "瑟": "王", + "穑": "禾", + "森": "木", + "僧": "亻", + "啥": "口", + "唼": "口", + "歃": "欠", + "煞": "灬", + "霎": "雨", + "厦": "厂", + "傻": "亻", + "鲨": "鱼", + "杀": "木", + "沙": "氵", + "纱": "纟", + "刹": "刂", + "砂": "石", + "裟": "衣", + "莎": "艹", + "铩": "钅", + "痧": "疒", + "晒": "日", + "筛": "竹", + "酾": "酉", + "讪": "讠", + "汕": "氵", + "疝": "疒", + "扇": "户", + "善": "口", + "骟": "马", + "鄯": "阝", + "缮": "纟", + "嬗": "女", + "擅": "扌", + "膳": "月", + "赡": "贝", + "蟮": "虫", + "鳝": "鱼", + "闪": "门", + "陕": "阝", + "栅": "木", + "珊": "王", + "舢": "舟", + "潸": "氵", + "膻": "月", + "苫": "艹", + "山": "山", + "删": "刂", + "杉": "木", + "芟": "艹", + "姗": "女", + "衫": "衤", + "钐": "钅", + "埏": "土", + "跚": "足", + "煽": "火", + "穇": "禾", + "裳": "衣", + "尚": "小", + "绱": "纟", + "上": "一", + "垧": "土", + "晌": "日", + "赏": "贝", + "熵": "火", + "伤": "亻", + "殇": "歹", + "商": "口", + "觞": "角", + "墒": "土", + "韶": "音", + "勺": "勹", + "芍": "艹", + "杓": "木", + "劭": "力", + "邵": "阝", + "绍": "纟", + "哨": "口", + "潲": "氵", + "少": "小", + "稍": "禾", + "筲": "竹", + "艄": "舟", + "蛸": "虫", + "捎": "扌", + "梢": "木", + "烧": "火", + "舌": "舌", + "佘": "人", + "蛇": "虫", + "折": "扌", + "摄": "扌", + "滠": "氵", + "赦": "赤", + "慑": "忄", + "厍": "厂", + "设": "讠", + "社": "礻", + "射": "寸", + "涉": "氵", + "麝": "鹿", + "舍": "舌", + "奢": "大", + "猞": "犭", + "赊": "贝", + "畲": "田", + "神": "礻", + "肾": "月", + "甚": "甘", + "胂": "月", + "渗": "氵", + "慎": "忄", + "蜃": "虫", + "葚": "艹", + "谂": "讠", + "婶": "女", + "沈": "氵", + "审": "宀", + "哂": "口", + "矧": "矢", + "娠": "女", + "深": "氵", + "申": "田", + "伸": "亻", + "身": "身", + "侁": "亻", + "呻": "口", + "绅": "纟", + "诜": "讠", + "珅": "王", + "砷": "石", + "莘": "艹", + "糁": "米", + "绳": "纟", + "圣": "土", + "晟": "日", + "盛": "皿", + "剩": "刂", + "胜": "月", + "嵊": "山", + "省": "目", + "眚": "目", + "笙": "竹", + "甥": "生", + "升": "十", + "生": "生", + "声": "士", + "牲": "牜", + "匙": "匕", + "时": "日", + "十": "十", + "什": "亻", + "石": "石", + "鲥": "鱼", + "识": "讠", + "实": "宀", + "拾": "扌", + "蚀": "虫", + "食": "食", + "埘": "土", + "誓": "言", + "奭": "大", + "噬": "口", + "弑": "木", + "谥": "讠", + "释": "采", + "嗜": "口", + "筮": "竹", + "柿": "木", + "舐": "舌", + "轼": "车", + "逝": "辶", + "铈": "钅", + "贳": "贝", + "适": "辶", + "式": "弋", + "士": "士", + "氏": "氏", + "世": "一", + "仕": "亻", + "市": "巾", + "示": "示", + "事": "亅", + "侍": "亻", + "势": "力", + "视": "见", + "试": "讠", + "饰": "饣", + "室": "宀", + "恃": "忄", + "拭": "扌", + "是": "日", + "史": "口", + "矢": "矢", + "豕": "豕", + "使": "亻", + "始": "女", + "驶": "马", + "尸": "尸", + "失": "大", + "师": "巾", + "虱": "虫", + "诗": "讠", + "施": "方", + "狮": "犭", + "湿": "氵", + "蓍": "艹", + "寿": "寸", + "受": "又", + "狩": "犭", + "兽": "乺", + "售": "口", + "授": "扌", + "绶": "纟", + "瘦": "疒", + "守": "宀", + "首": "首", + "艏": "舟", + "手": "手", + "收": "攵", + "秫": "禾", + "孰": "子", + "赎": "贝", + "塾": "土", + "熟": "灬", + "腧": "月", + "墅": "土", + "漱": "氵", + "澍": "氵", + "术": "木", + "戍": "戈", + "束": "木", + "沭": "氵", + "述": "辶", + "树": "木", + "竖": "立", + "恕": "心", + "庶": "广", + "数": "攵", + "暑": "日", + "黍": "黍", + "署": "罒", + "鼠": "鼠", + "蜀": "虫", + "薯": "艹", + "曙": "日", + "属": "尸", + "蔬": "艹", + "书": "乛", + "殳": "殳", + "抒": "扌", + "纾": "纟", + "叔": "又", + "枢": "木", + "姝": "女", + "倏": "亻", + "殊": "歹", + "梳": "木", + "淑": "氵", + "菽": "艹", + "鄃": "阝", + "疏": "疋", + "舒": "舌", + "摅": "扌", + "毹": "毛", + "输": "车", + "耍": "而", + "刷": "刂", + "唰": "口", + "帅": "巾", + "蟀": "虫", + "甩": "用", + "衰": "衣", + "摔": "扌", + "涮": "氵", + "闩": "门", + "拴": "扌", + "栓": "木", + "爽": "爻", + "孀": "女", + "双": "又", + "霜": "雨", + "谁": "讠", + "税": "禾", + "睡": "目", + "水": "水", + "顺": "页", + "舜": "夕", + "瞬": "目", + "吮": "口", + "槊": "木", + "搠": "扌", + "蒴": "艹", + "妁": "女", + "烁": "火", + "朔": "月", + "铄": "钅", + "硕": "石", + "说": "讠", + "笥": "竹", + "耜": "耒", + "嗣": "口", + "肆": "聿", + "巳": "巳", + "四": "囗", + "寺": "寸", + "汜": "氵", + "伺": "亻", + "似": "亻", + "兕": "儿", + "姒": "女", + "祀": "礻", + "泗": "氵", + "饲": "饣", + "驷": "马", + "俟": "亻", + "死": "歹", + "厮": "厂", + "锶": "钅", + "嘶": "口", + "撕": "扌", + "澌": "氵", + "思": "心", + "鸶": "鸟", + "斯": "斤", + "缌": "纟", + "蛳": "虫", + "厶": "厶", + "丝": "一", + "司": "口", + "私": "禾", + "咝": "口", + "讼": "讠", + "宋": "宀", + "诵": "讠", + "送": "辶", + "颂": "页", + "怂": "心", + "悚": "忄", + "耸": "耳", + "竦": "立", + "忪": "忄", + "松": "木", + "娀": "女", + "凇": "冫", + "淞": "氵", + "菘": "艹", + "嵩": "山", + "嗽": "口", + "叟": "又", + "嗾": "口", + "瞍": "目", + "擞": "扌", + "薮": "艹", + "嗖": "口", + "搜": "扌", + "溲": "氵", + "馊": "饣", + "飕": "风", + "锼": "钅", + "艘": "舟", + "螋": "虫", + "俗": "亻", + "夙": "夕", + "诉": "讠", + "肃": "聿", + "涑": "氵", + "素": "糸", + "速": "辶", + "僳": "亻", + "粟": "米", + "谡": "讠", + "嗉": "口", + "塑": "土", + "愫": "忄", + "溯": "氵", + "簌": "竹", + "蔌": "艹", + "觫": "角", + "玹": "玉", + "苏": "艹", + "酥": "酉", + "稣": "禾", + "蒜": "艹", + "算": "竹", + "狻": "犭", + "酸": "酉", + "绥": "纟", + "隋": "阝", + "随": "阝", + "遂": "辶", + "谇": "讠", + "岁": "山", + "祟": "示", + "碎": "石", + "隧": "阝", + "穗": "禾", + "邃": "辶", + "燧": "火", + "髓": "骨", + "濉": "氵", + "虽": "虫", + "荽": "艹", + "眭": "目", + "睢": "目", + "损": "扌", + "笋": "竹", + "隼": "隹", + "榫": "木", + "孙": "子", + "狲": "犭", + "荪": "艹", + "飧": "飠", + "所": "户", + "唢": "口", + "索": "糸", + "琐": "王", + "锁": "钅", + "唆": "口", + "娑": "女", + "挲": "手", + "桫": "木", + "梭": "木", + "睃": "目", + "嗦": "口", + "羧": "羊", + "蓑": "艹", + "缩": "纟", + "嗍": "口", + "沓": "水", + "榻": "木", + "踏": "足", + "蹋": "足", + "挞": "扌", + "闼": "门", + "鳎": "鱼", + "塔": "土", + "獭": "犭", + "溻": "氵", + "趿": "足", + "铊": "钅", + "塌": "土", + "遢": "辶", + "他": "亻", + "它": "宀", + "她": "女", + "薹": "艹", + "台": "口", + "邰": "阝", + "抬": "扌", + "苔": "艹", + "炱": "火", + "鲐": "鱼", + "太": "大", + "汰": "氵", + "态": "心", + "肽": "月", + "钛": "钅", + "泰": "水", + "酞": "酉", + "呔": "口", + "漦": "水", + "胎": "月", + "坛": "土", + "昙": "日", + "谈": "讠", + "郯": "阝", + "覃": "覀", + "痰": "疒", + "锬": "钅", + "谭": "讠", + "潭": "氵", + "檀": "木", + "镡": "钅", + "叹": "口", + "炭": "火", + "碳": "石", + "探": "扌", + "忐": "心", + "坦": "土", + "袒": "衤", + "钽": "钅", + "毯": "毛", + "摊": "扌", + "滩": "氵", + "坍": "土", + "贪": "贝", + "瘫": "疒", + "塘": "土", + "瑭": "王", + "膛": "月", + "糖": "米", + "螗": "虫", + "螳": "虫", + "醣": "酉", + "樘": "木", + "镗": "钅", + "饧": "饣", + "搪": "扌", + "溏": "氵", + "唐": "口", + "堂": "土", + "棠": "木", + "烫": "火", + "趟": "走", + "帑": "巾", + "倘": "亻", + "淌": "氵", + "傥": "亻", + "躺": "身", + "耥": "耒", + "汤": "氵", + "铴": "钅", + "羰": "羊", + "檮": "木", + "洮": "氵", + "逃": "辶", + "桃": "木", + "陶": "阝", + "啕": "口", + "梼": "木", + "淘": "氵", + "萄": "艹", + "鼗": "鼓", + "套": "大", + "讨": "讠", + "饕": "飠", + "弢": "弓", + "涛": "氵", + "绦": "纟", + "掏": "扌", + "慆": "忄", + "滔": "氵", + "韬": "韦", + "焘": "灬", + "忑": "心", + "特": "牜", + "铽": "钅", + "慝": "心", + "疼": "疒", + "腾": "月", + "誊": "言", + "滕": "水", + "藤": "艹", + "绨": "纟", + "啼": "口", + "缇": "纟", + "鹈": "鸟", + "题": "页", + "蹄": "足", + "醍": "酉", + "提": "扌", + "屉": "尸", + "剃": "刂", + "倜": "亻", + "悌": "忄", + "涕": "氵", + "逖": "辶", + "惕": "忄", + "替": "曰", + "裼": "衤", + "嚏": "口", + "体": "亻", + "剔": "刂", + "梯": "木", + "锑": "钅", + "踢": "足", + "甜": "甘", + "填": "土", + "阗": "门", + "田": "田", + "恬": "忄", + "畋": "田", + "瞋": "目", + "掭": "扌", + "忝": "小", + "殄": "歹", + "腆": "月", + "舔": "舌", + "渓": "氵", + "天": "大", + "添": "氵", + "条": "木", + "迢": "辶", + "笤": "竹", + "龆": "齿", + "蜩": "虫", + "髫": "髟", + "鲦": "鱼", + "苕": "艹", + "眺": "目", + "粜": "米", + "跳": "足", + "窕": "穴", + "挑": "扌", + "祧": "礻", + "佻": "亻", + "餮": "飠", + "铁": "钅", + "贴": "贝", + "萜": "艹", + "帖": "巾", + "廷": "廴", + "亭": "亠", + "庭": "广", + "莛": "艹", + "停": "亻", + "婷": "女", + "霆": "雨", + "葶": "艹", + "蜓": "虫", + "艇": "舟", + "挺": "扌", + "梃": "木", + "烃": "火", + "厅": "厂", + "汀": "氵", + "听": "口", + "酮": "酉", + "僮": "亻", + "砼": "石", + "铜": "钅", + "童": "立", + "桐": "木", + "仝": "人", + "同": "口", + "佟": "亻", + "彤": "彡", + "茼": "艹", + "潼": "氵", + "瞳": "目", + "恸": "忄", + "痛": "疒", + "统": "纟", + "捅": "扌", + "桶": "木", + "筒": "竹", + "通": "辶", + "头": "大", + "投": "扌", + "骰": "骨", + "透": "辶", + "钭": "钅", + "偷": "亻", + "涂": "氵", + "荼": "艹", + "途": "辶", + "屠": "尸", + "徒": "彳", + "酴": "酉", + "菟": "艹", + "图": "囗", + "凃": "冫", + "兔": "儿", + "堍": "土", + "土": "土", + "吐": "口", + "钍": "钅", + "凸": "凵", + "秃": "禾", + "突": "穴", + "团": "囗", + "抟": "扌", + "彖": "彑", + "疃": "田", + "湍": "氵", + "颓": "页", + "退": "辶", + "煺": "火", + "蜕": "虫", + "褪": "衤", + "腿": "月", + "推": "扌", + "忒": "心", + "屯": "屮", + "饨": "饣", + "豚": "豕", + "臀": "月", + "氽": "水", + "吞": "口", + "暾": "日", + "鸵": "鸟", + "跎": "足", + "酡": "酉", + "驮": "马", + "佗": "亻", + "陀": "阝", + "坨": "土", + "沱": "氵", + "驼": "马", + "柁": "木", + "砣": "石", + "鼍": "黽", + "橐": "木", + "牠": "牜", + "拓": "扌", + "柝": "木", + "唾": "口", + "箨": "竹", + "妥": "女", + "庹": "广", + "椭": "木", + "乇": "丿", + "托": "扌", + "拖": "扌", + "脱": "月", + "棁": "木", + "哇": "口", + "娃": "女", + "腽": "月", + "袜": "衤", + "瓦": "瓦", + "佤": "亻", + "挖": "扌", + "洼": "氵", + "娲": "女", + "蛙": "虫", + "外": "夕", + "崴": "山", + "歪": "止", + "玩": "王", + "丸": "丿", + "纨": "纟", + "芄": "艹", + "完": "宀", + "顽": "页", + "烷": "火", + "万": "一", + "腕": "月", + "挽": "扌", + "晚": "日", + "莞": "艹", + "婉": "女", + "惋": "忄", + "宛": "宀", + "绾": "纟", + "脘": "月", + "菀": "艹", + "琬": "王", + "皖": "白", + "畹": "田", + "碗": "石", + "弯": "弓", + "剜": "刂", + "湾": "氵", + "蜿": "虫", + "豌": "豆", + "亡": "亠", + "王": "王", + "妄": "女", + "忘": "心", + "旺": "日", + "望": "月", + "魍": "鬼", + "网": "网", + "往": "彳", + "枉": "木", + "罔": "网", + "惘": "忄", + "辋": "车", + "汪": "氵", + "为": "丶", + "韦": "韦", + "围": "囗", + "帏": "巾", + "沩": "氵", + "违": "辶", + "闱": "门", + "桅": "木", + "涠": "氵", + "唯": "口", + "帷": "巾", + "惟": "忄", + "维": "纟", + "嵬": "山", + "湋": "氵", + "潍": "氵", + "卫": "卩", + "未": "木", + "位": "亻", + "味": "口", + "畏": "田", + "胃": "月", + "尉": "寸", + "谓": "讠", + "喂": "口", + "渭": "氵", + "猬": "犭", + "蔚": "艹", + "慰": "心", + "魏": "鬼", + "鲔": "鱼", + "萎": "艹", + "隗": "阝", + "猥": "犭", + "痿": "疒", + "艉": "舟", + "韪": "韦", + "伟": "亻", + "伪": "亻", + "尾": "尸", + "纬": "纟", + "苇": "艹", + "委": "女", + "炜": "火", + "玮": "王", + "洧": "氵", + "娓": "女", + "诿": "讠", + "蒵": "艹", + "薇": "艹", + "巍": "山", + "葳": "艹", + "微": "彳", + "煨": "火", + "危": "厄", + "威": "女", + "偎": "亻", + "逶": "辶", + "隈": "阝", + "文": "文", + "纹": "纟", + "闻": "门", + "蚊": "虫", + "阌": "门", + "雯": "雨", + "汶": "氵", + "问": "门", + "璺": "玉", + "刎": "刂", + "吻": "口", + "紊": "糸", + "稳": "禾", + "瘟": "疒", + "温": "氵", + "缊": "纟", + "瓮": "瓦", + "蕹": "艹", + "蓊": "艹", + "翁": "羽", + "嗡": "口", + "涴": "氵", + "龌": "齿", + "沃": "氵", + "肟": "月", + "卧": "卜", + "偓": "亻", + "幄": "巾", + "握": "扌", + "渥": "氵", + "硪": "石", + "斡": "斗", + "我": "戈", + "喔": "口", + "窝": "穴", + "蜗": "虫", + "挝": "扌", + "倭": "亻", + "涡": "氵", + "莴": "艹", + "梧": "木", + "浯": "氵", + "蜈": "虫", + "鼯": "鼠", + "无": "无", + "毋": "毋", + "吴": "口", + "吾": "口", + "芜": "艹", + "鄋": "阝", + "坞": "土", + "勿": "勹", + "务": "力", + "戊": "戈", + "阢": "阝", + "杌": "木", + "芴": "艹", + "物": "牜", + "误": "讠", + "悟": "忄", + "晤": "日", + "焐": "火", + "婺": "女", + "痦": "疒", + "骛": "马", + "雾": "雨", + "寤": "宀", + "鹜": "鸟", + "鋈": "金", + "抧": "扌", + "鹉": "鸟", + "舞": "夕", + "侮": "亻", + "捂": "扌", + "牾": "牜", + "珷": "王", + "妩": "女", + "庑": "广", + "忤": "忄", + "怃": "忄", + "迕": "辶", + "武": "止", + "五": "二", + "午": "十", + "仵": "亻", + "伍": "亻", + "兀": "儿", + "乌": "丿", + "圬": "土", + "污": "氵", + "邬": "阝", + "呜": "口", + "巫": "工", + "屋": "尸", + "诬": "讠", + "钨": "钅", + "习": "乙", + "席": "巾", + "袭": "衣", + "觋": "见", + "媳": "女", + "隰": "阝", + "檄": "木", + "戏": "戈", + "系": "糸", + "饩": "饣", + "细": "纟", + "阋": "门", + "舄": "臼", + "隙": "阝", + "禊": "礻", + "洗": "氵", + "玺": "玉", + "徙": "彳", + "铣": "钅", + "喜": "口", + "禧": "礻", + "葸": "艹", + "屣": "尸", + "蓰": "艹", + "鼷": "鼠", + "曦": "日", + "醯": "酉", + "蟋": "虫", + "熹": "灬", + "羲": "羊", + "螅": "虫", + "蜥": "虫", + "豨": "谷", + "嘻": "口", + "嬉": "女", + "膝": "月", + "樨": "木", + "歙": "欠", + "悉": "心", + "惜": "忄", + "欷": "欠", + "淅": "氵", + "烯": "火", + "硒": "石", + "菥": "艹", + "傒": "亻", + "晰": "日", + "溪": "氵", + "皙": "白", + "锡": "钅", + "僖": "亻", + "熄": "火", + "熙": "灬", + "犀": "牛", + "稀": "禾", + "粞": "米", + "翕": "羽", + "舾": "舟", + "夕": "夕", + "兮": "八", + "汐": "氵", + "西": "西", + "吸": "口", + "希": "巾", + "昔": "日", + "析": "木", + "矽": "石", + "穸": "穴", + "郗": "阝", + "唏": "口", + "奚": "大", + "娭": "女", + "息": "心", + "晞": "日", + "浠": "氵", + "牺": "牜", + "鱚": "魚", + "爋": "火", + "抭": "扌", + "詃": "言", + "郺": "阝", + "峡": "山", + "柙": "木", + "狭": "犭", + "硖": "石", + "遐": "辶", + "暇": "日", + "瑕": "王", + "辖": "车", + "匣": "匚", + "侠": "亻", + "狎": "犭", + "霞": "雨", + "黠": "黑", + "下": "一", + "吓": "口", + "夏": "夂", + "罅": "缶", + "瞎": "目", + "虾": "虫", + "伭": "亻", + "闲": "门", + "弦": "弓", + "贤": "贝", + "咸": "口", + "涎": "氵", + "娴": "女", + "舷": "舟", + "衔": "行", + "痫": "疒", + "鹇": "鸟", + "嫌": "女", + "腺": "月", + "陷": "阝", + "馅": "饣", + "缐": "纟", + "羡": "羊", + "献": "犬", + "县": "厶", + "岘": "山", + "苋": "艹", + "现": "王", + "线": "纟", + "限": "阝", + "宪": "宀", + "霰": "雨", + "藓": "艹", + "燹": "火", + "冼": "冫", + "显": "日", + "险": "阝", + "猃": "犭", + "蚬": "虫", + "筅": "竹", + "跣": "足", + "祆": "礻", + "纤": "纟", + "氙": "气", + "籼": "米", + "莶": "艹", + "掀": "扌", + "跹": "足", + "酰": "酉", + "锨": "钅", + "鲜": "鱼", + "暹": "日", + "仙": "亻", + "先": "儿", + "详": "讠", + "庠": "广", + "祥": "礻", + "翔": "羽", + "向": "口", + "巷": "巳", + "项": "页", + "象": "豕", + "橡": "木", + "蟓": "虫", + "像": "亻", + "鲞": "鱼", + "享": "亠", + "响": "口", + "饷": "饣", + "飨": "飠", + "想": "心", + "湘": "氵", + "缃": "纟", + "葙": "艹", + "箱": "竹", + "襄": "衣", + "骧": "马", + "镶": "钅", + "乡": "乙", + "芗": "艹", + "相": "目", + "香": "香", + "厢": "厂", + "崤": "山", + "淆": "氵", + "孝": "子", + "效": "攵", + "校": "木", + "笑": "竹", + "啸": "口", + "小": "小", + "晓": "日", + "筱": "竹", + "肖": "月", + "哮": "口", + "嚣": "口", + "萧": "艹", + "哓": "口", + "枵": "木", + "骁": "马", + "宵": "宀", + "消": "氵", + "绡": "纟", + "逍": "辶", + "霄": "雨", + "魈": "鬼", + "销": "钅", + "潇": "氵", + "箫": "竹", + "硝": "石", + "枭": "木", + "协": "十", + "邪": "阝", + "胁": "月", + "偕": "亻", + "斜": "斗", + "谐": "讠", + "携": "扌", + "勰": "力", + "撷": "扌", + "缬": "纟", + "鞋": "革", + "泄": "氵", + "泻": "氵", + "屑": "尸", + "偰": "亻", + "械": "木", + "绁": "纟", + "卸": "卩", + "洩": "氵", + "渫": "氵", + "亵": "亠", + "谢": "讠", + "榍": "木", + "榭": "木", + "廨": "广", + "懈": "忄", + "獬": "犭", + "薤": "艹", + "邂": "辶", + "燮": "火", + "瀣": "氵", + "蟹": "虫", + "躞": "足", + "写": "冖", + "些": "二", + "楔": "木", + "歇": "欠", + "蝎": "虫", + "囟": "囗", + "信": "亻", + "衅": "血", + "锌": "钅", + "新": "斤", + "歆": "欠", + "薪": "艹", + "馨": "香", + "鑫": "金", + "心": "心", + "忻": "忄", + "芯": "艹", + "辛": "辛", + "昕": "日", + "欣": "欠", + "刑": "刂", + "行": "行", + "邢": "阝", + "形": "彡", + "陉": "阝", + "型": "土", + "硎": "石", + "杏": "木", + "姓": "女", + "幸": "干", + "性": "忄", + "荇": "艹", + "婞": "女", + "悻": "忄", + "醒": "酉", + "擤": "扌", + "腥": "月", + "兴": "八", + "星": "日", + "惺": "忄", + "猩": "犭", + "雄": "隹", + "熊": "灬", + "胸": "月", + "凶": "凵", + "兄": "儿", + "匈": "勹", + "芎": "艹", + "讻": "讠", + "汹": "氵", + "嗅": "口", + "秀": "禾", + "岫": "山", + "绣": "纟", + "袖": "衤", + "锈": "钅", + "溴": "氵", + "琹": "王", + "朽": "木", + "宿": "宀", + "休": "亻", + "鸺": "鸟", + "貅": "豸", + "馐": "饣", + "髹": "髟", + "羞": "羊", + "修": "亻", + "咻": "口", + "庥": "广", + "訏": "言", + "蓿": "艹", + "徐": "彳", + "煦": "灬", + "蓄": "艹", + "洫": "氵", + "勖": "力", + "绪": "纟", + "续": "纟", + "酗": "酉", + "婿": "女", + "溆": "氵", + "絮": "糸", + "旭": "日", + "序": "广", + "叙": "又", + "恤": "忄", + "滀": "氵", + "糈": "米", + "醑": "酉", + "许": "讠", + "诩": "讠", + "栩": "木", + "圩": "土", + "胥": "月", + "须": "页", + "墟": "土", + "顼": "页", + "虚": "虍", + "嘘": "口", + "需": "雨", + "戌": "戈", + "盱": "目", + "歨": "欠", + "繻": "糹", + "痃": "疒", + "悬": "心", + "旋": "方", + "漩": "氵", + "璇": "王", + "玄": "玄", + "泫": "氵", + "炫": "火", + "绚": "纟", + "眩": "目", + "铉": "钅", + "渲": "氵", + "楦": "木", + "碹": "石", + "镟": "钅", + "癣": "疒", + "选": "辶", + "暄": "日", + "煊": "火", + "儇": "亻", + "轩": "车", + "宣": "宀", + "谖": "讠", + "喧": "口", + "揎": "扌", + "萱": "艹", + "噱": "口", + "学": "子", + "泶": "水", + "踅": "足", + "穴": "穴", + "血": "血", + "谑": "讠", + "雪": "雨", + "鳕": "鱼", + "靴": "革", + "薛": "艹", + "削": "刂", + "询": "讠", + "峋": "山", + "恂": "忄", + "洵": "氵", + "浔": "氵", + "紃": "糹", + "荀": "艹", + "珣": "王", + "循": "彳", + "鄩": "阝", + "鲟": "鱼", + "寻": "寸", + "巡": "巛", + "旬": "日", + "郇": "阝", + "浚": "氵", + "驯": "马", + "徇": "彳", + "逊": "辶", + "殉": "歹", + "巽": "巳", + "蕈": "艹", + "训": "讠", + "讯": "讠", + "汛": "氵", + "迅": "辶", + "勋": "力", + "埙": "土", + "熏": "灬", + "窨": "穴", + "獯": "犭", + "薰": "艹", + "曛": "日", + "醺": "酉", + "呀": "口", + "牙": "牙", + "伢": "亻", + "岈": "山", + "芽": "艹", + "厓": "弒", + "琊": "王", + "蚜": "虫", + "崖": "山", + "涯": "氵", + "睚": "目", + "衙": "行", + "氩": "气", + "娅": "女", + "砑": "石", + "揠": "扌", + "亚": "二", + "讶": "讠", + "迓": "辶", + "疋": "疋", + "哑": "口", + "雅": "隹", + "押": "扌", + "鸦": "鸟", + "桠": "木", + "鸭": "鸟", + "垭": "土", + "丫": "丨", + "压": "厂", + "延": "廴", + "闫": "门", + "严": "一", + "妍": "女", + "盐": "皿", + "言": "言", + "岩": "山", + "沿": "氵", + "炎": "火", + "研": "石", + "颜": "页", + "檐": "木", + "蜒": "虫", + "阎": "门", + "阽": "阝", + "筵": "竹", + "谚": "讠", + "滟": "氵", + "酽": "酉", + "谳": "讠", + "餍": "厂", + "厌": "厂", + "彦": "彡", + "砚": "石", + "唁": "口", + "宴": "宀", + "晏": "日", + "艳": "色", + "验": "马", + "燕": "灬", + "赝": "贝", + "堰": "土", + "焰": "火", + "焱": "火", + "雁": "隹", + "鼹": "鼠", + "衍": "行", + "偃": "亻", + "厣": "厂", + "掩": "扌", + "眼": "目", + "郾": "阝", + "琰": "王", + "罨": "罒", + "魇": "鬼", + "演": "氵", + "兖": "亠", + "奄": "大", + "俨": "亻", + "匽": "匚", + "剡": "刂", + "咽": "口", + "恹": "忄", + "烟": "火", + "胭": "月", + "崦": "山", + "淹": "氵", + "焉": "灬", + "菸": "艹", + "阉": "门", + "湮": "氵", + "腌": "月", + "鄢": "阝", + "嫣": "女", + "扬": "扌", + "羊": "羊", + "阳": "阝", + "杨": "木", + "炀": "火", + "佯": "亻", + "疡": "疒", + "徉": "彳", + "洋": "氵", + "昫": "日", + "烊": "火", + "蛘": "虫", + "卬": "卩", + "漾": "氵", + "怏": "忄", + "恙": "心", + "样": "木", + "仰": "亻", + "养": "乺", + "氧": "气", + "痒": "疒", + "秧": "禾", + "鸯": "鸟", + "鞅": "革", + "泱": "氵", + "殃": "歹", + "央": "大", + "爻": "爻", + "尧": "兀", + "肴": "月", + "姚": "女", + "珧": "王", + "窑": "穴", + "傜": "亻", + "谣": "讠", + "徭": "彳", + "摇": "扌", + "遥": "辶", + "鳐": "鱼", + "瑶": "王", + "繇": "糸", + "轺": "车", + "铫": "钅", + "侥": "亻", + "曜": "日", + "耀": "羽", + "药": "艹", + "要": "覀", + "鹞": "鸟", + "钥": "钅", + "杳": "木", + "咬": "口", + "窈": "穴", + "舀": "臼", + "腰": "月", + "邀": "辶", + "幺": "幺", + "夭": "大", + "吆": "口", + "妖": "女", + "爷": "父", + "揶": "扌", + "铘": "钅", + "靥": "面", + "业": "业", + "叶": "口", + "曳": "曰", + "页": "页", + "邺": "阝", + "夜": "夕", + "晔": "日", + "烨": "火", + "掖": "扌", + "液": "氵", + "谒": "讠", + "腋": "月", + "黦": "黑", + "冶": "冫", + "野": "里", + "也": "乙", + "耶": "耳", + "椰": "木", + "噎": "口", + "沂": "氵", + "诒": "讠", + "宜": "宀", + "怡": "忄", + "仪": "亻", + "圯": "土", + "夷": "大", + "荑": "艹", + "贻": "贝", + "饴": "饣", + "咦": "口", + "姨": "女", + "眙": "目", + "胰": "月", + "痍": "疒", + "移": "禾", + "彝": "彑", + "遗": "辶", + "颐": "页", + "疑": "疋", + "嶷": "山", + "疫": "疒", + "羿": "羽", + "轶": "车", + "绎": "纟", + "诣": "讠", + "驿": "马", + "奕": "大", + "弈": "廾", + "译": "讠", + "邑": "邑", + "佾": "亻", + "峄": "山", + "怿": "忄", + "易": "日", + "意": "心", + "溢": "氵", + "悒": "忄", + "挹": "扌", + "益": "皿", + "谊": "讠", + "埸": "土", + "翊": "羽", + "翌": "羽", + "逸": "辶", + "镒": "钅", + "薏": "艹", + "翳": "羽", + "翼": "羽", + "臆": "月", + "癔": "疒", + "镱": "钅", + "缢": "纟", + "蜴": "虫", + "肄": "聿", + "裔": "衣", + "瘗": "疒", + "毅": "殳", + "熠": "火", + "劓": "刂", + "殪": "歹", + "懿": "心", + "义": "丶", + "亿": "亻", + "弋": "弋", + "刈": "刂", + "忆": "忄", + "艺": "艹", + "仡": "亻", + "议": "讠", + "亦": "亠", + "屹": "山", + "异": "廾", + "佚": "亻", + "呓": "口", + "役": "彳", + "抑": "扌", + "燿": "火", + "旖": "方", + "舣": "舟", + "蚁": "虫", + "倚": "亻", + "椅": "木", + "乙": "乙", + "已": "己", + "以": "人", + "钇": "钅", + "佁": "亻", + "矣": "矢", + "苡": "艹", + "迤": "辶", + "酏": "酉", + "黟": "黑", + "咿": "口", + "猗": "犭", + "伊": "亻", + "衣": "衣", + "医": "匚", + "依": "亻", + "祎": "礻", + "铱": "钅", + "壹": "士", + "揖": "扌", + "欹": "大", + "漪": "氵", + "噫": "口", + "一": "一", + "吟": "口", + "垠": "土", + "狺": "犭", + "寅": "宀", + "淫": "氵", + "银": "钅", + "鄞": "阝", + "夤": "夕", + "龈": "齿", + "霪": "雨", + "印": "卩", + "茚": "艹", + "胤": "月", + "尹": "尸", + "引": "弓", + "吲": "口", + "饮": "饣", + "蚓": "虫", + "隐": "阝", + "瘾": "疒", + "因": "囗", + "阴": "阝", + "姻": "女", + "洇": "氵", + "茵": "艹", + "荫": "艹", + "音": "音", + "殷": "殳", + "氤": "气", + "铟": "钅", + "喑": "口", + "堙": "土", + "赢": "贝", + "迎": "辶", + "茔": "艹", + "盈": "皿", + "荥": "艹", + "荧": "艹", + "莹": "艹", + "萤": "艹", + "营": "艹", + "萦": "艹", + "楹": "木", + "滢": "氵", + "蓥": "艹", + "潆": "氵", + "蝇": "虫", + "嬴": "女", + "瀛": "氵", + "映": "日", + "硬": "石", + "媵": "女", + "颍": "页", + "颖": "页", + "影": "彡", + "瘿": "疒", + "郢": "阝", + "樱": "木", + "璎": "王", + "应": "广", + "英": "艹", + "莺": "艹", + "婴": "女", + "鹦": "鸟", + "膺": "月", + "鹰": "鸟", + "瑛": "王", + "嘤": "口", + "撄": "扌", + "缨": "纟", + "罂": "缶", + "哟": "口", + "唷": "口", + "喁": "口", + "用": "用", + "佣": "亻", + "永": "水", + "甬": "用", + "咏": "口", + "泳": "氵", + "俑": "亻", + "勇": "力", + "涌": "氵", + "恿": "心", + "蛹": "虫", + "踊": "足", + "饔": "飠", + "拥": "扌", + "痈": "疒", + "邕": "邑", + "庸": "广", + "鄘": "阝", + "雍": "隹", + "墉": "土", + "慵": "忄", + "壅": "土", + "镛": "钅", + "臃": "月", + "鳙": "鱼", + "疣": "疒", + "尢": "尢", + "尤": "尢", + "由": "田", + "犹": "犭", + "邮": "阝", + "油": "氵", + "莜": "艹", + "铀": "钅", + "蚰": "虫", + "游": "氵", + "鱿": "鱼", + "猷": "犬", + "莸": "艹", + "蝣": "虫", + "蝤": "虫", + "又": "又", + "右": "口", + "幼": "幺", + "佑": "亻", + "侑": "亻", + "祐": "礻", + "诱": "讠", + "蚴": "虫", + "柚": "木", + "囿": "囗", + "宥": "宀", + "釉": "采", + "鼬": "鼠", + "脩": "月", + "莠": "艹", + "友": "又", + "有": "月", + "卣": "卜", + "酉": "酉", + "羑": "羊", + "铕": "钅", + "牖": "片", + "黝": "黑", + "幽": "幺", + "悠": "心", + "优": "亻", + "忧": "忄", + "攸": "攵", + "呦": "口", + "渝": "氵", + "于": "二", + "邘": "阝", + "余": "人", + "妤": "女", + "欤": "欠", + "玙": "王", + "於": "方", + "盂": "皿", + "臾": "臼", + "鱼": "鱼", + "俞": "人", + "禺": "忄", + "竽": "竹", + "舁": "臼", + "娱": "女", + "狳": "犭", + "谀": "讠", + "馀": "饣", + "渔": "氵", + "萸": "艹", + "隅": "阝", + "雩": "雨", + "嵛": "山", + "愉": "忄", + "揄": "扌", + "腴": "月", + "逾": "辶", + "愚": "心", + "榆": "木", + "瑜": "王", + "虞": "虍", + "觎": "见", + "窬": "穴", + "舆": "臼", + "蝓": "虫", + "鐍": "釒", + "渦": "氵", + "喻": "口", + "寓": "宀", + "御": "彳", + "裕": "衤", + "遇": "辶", + "鹆": "鸟", + "愈": "心", + "煜": "火", + "峪": "山", + "浴": "氵", + "钰": "钅", + "预": "页", + "域": "土", + "欲": "欠", + "谕": "讠", + "阈": "门", + "玉": "玉", + "驭": "马", + "吁": "口", + "聿": "聿", + "芋": "艹", + "妪": "女", + "饫": "饣", + "育": "月", + "郁": "阝", + "彧": "彡", + "昱": "日", + "狱": "犭", + "蜮": "虫", + "蓣": "艹", + "誉": "言", + "毓": "母", + "燠": "火", + "鹬": "鸟", + "豫": "豕", + "鬻": "鬲", + "予": "亅", + "与": "一", + "伛": "亻", + "宇": "宀", + "屿": "山", + "羽": "羽", + "雨": "雨", + "俣": "亻", + "禹": "忄", + "语": "讠", + "圄": "囗", + "圉": "囗", + "庾": "广", + "鄅": "阝", + "瘐": "疒", + "窳": "穴", + "龉": "齿", + "瘀": "疒", + "纡": "纟", + "迂": "辶", + "淤": "氵", + "元": "儿", + "员": "口", + "园": "囗", + "沅": "氵", + "橼": "木", + "螈": "虫", + "媛": "女", + "垣": "土", + "爰": "爫", + "原": "厂", + "圆": "囗", + "袁": "衣", + "援": "扌", + "缘": "纟", + "鼋": "黽", + "塬": "土", + "源": "氵", + "猿": "犭", + "辕": "车", + "芫": "艹", + "瑗": "王", + "愿": "心", + "苑": "艹", + "怨": "心", + "院": "阝", + "远": "辶", + "箢": "竹", + "渊": "氵", + "鸢": "鸟", + "冤": "冖", + "眢": "目", + "鸳": "鸟", + "哕": "口", + "悦": "忄", + "钺": "钅", + "阅": "门", + "跃": "足", + "粤": "米", + "越": "走", + "樾": "木", + "龠": "龠", + "瀹": "氵", + "月": "月", + "刖": "刂", + "岳": "山", + "曰": "曰", + "约": "纟", + "泇": "氵", + "纭": "纟", + "芸": "艹", + "昀": "日", + "云": "二", + "匀": "勹", + "妘": "女", + "郧": "阝", + "耘": "耒", + "酝": "酉", + "愠": "忄", + "孕": "子", + "运": "辶", + "郓": "阝", + "恽": "忄", + "韫": "韦", + "韵": "音", + "熨": "火", + "蕴": "艹", + "允": "儿", + "狁": "犭", + "陨": "阝", + "殒": "歹", + "氲": "气", + "晕": "日", + "杂": "木", + "砸": "石", + "咋": "口", + "咂": "口", + "拶": "扌", + "匝": "匚", + "再": "冂", + "在": "土", + "宰": "宀", + "载": "车", + "崽": "山", + "仔": "亻", + "灾": "火", + "甾": "田", + "哉": "口", + "栽": "木", + "咱": "口", + "暂": "日", + "赞": "贝", + "錾": "金", + "瓒": "王", + "昝": "日", + "攒": "扌", + "儹": "亻", + "趱": "走", + "糌": "米", + "簪": "竹", + "篸": "竹", + "奘": "大", + "葬": "艹", + "驵": "马", + "脏": "月", + "赃": "贝", + "臧": "臣", + "凿": "凵", + "灶": "火", + "皂": "白", + "唣": "口", + "造": "辶", + "噪": "口", + "燥": "火", + "躁": "足", + "藻": "艹", + "早": "日", + "枣": "木", + "蚤": "虫", + "澡": "氵", + "遭": "辶", + "糟": "米", + "则": "刂", + "择": "扌", + "泽": "氵", + "责": "贝", + "迮": "辶", + "啧": "口", + "帻": "巾", + "笮": "竹", + "舴": "舟", + "赜": "贝", + "箦": "竹", + "仄": "人", + "昃": "日", + "贼": "贝", + "谮": "讠", + "怎": "心", + "锃": "钅", + "甑": "瓦", + "赠": "贝", + "增": "土", + "憎": "忄", + "缯": "纟", + "罾": "罒", + "馇": "饣", + "札": "木", + "轧": "车", + "闸": "门", + "铡": "钅", + "诈": "讠", + "咤": "口", + "乍": "丿", + "炸": "火", + "痄": "疒", + "蚱": "虫", + "榨": "木", + "吒": "口", + "柞": "木", + "眨": "目", + "砟": "石", + "蹅": "足", + "扎": "扌", + "哳": "口", + "喳": "口", + "揸": "扌", + "渣": "氵", + "楂": "木", + "齩": "鼻", + "债": "亻", + "砦": "石", + "寨": "宀", + "瘵": "疒", + "骴": "骨", + "宅": "宀", + "翟": "羽", + "窄": "穴", + "摘": "扌", + "斋": "文", + "占": "卜", + "佔": "亻", + "战": "戈", + "栈": "木", + "站": "立", + "绽": "纟", + "湛": "氵", + "蘸": "艹", + "斩": "斤", + "展": "尸", + "盏": "皿", + "崭": "山", + "搌": "扌", + "鳣": "鱼", + "詹": "言", + "谵": "讠", + "瞻": "目", + "沾": "氵", + "毡": "毛", + "旃": "方", + "粘": "米", + "嶂": "山", + "幛": "巾", + "瘴": "疒", + "障": "阝", + "丈": "一", + "仗": "亻", + "帐": "巾", + "杖": "木", + "胀": "月", + "账": "贝", + "掌": "手", + "仉": "亻", + "涨": "氵", + "樟": "木", + "璋": "王", + "蟑": "虫", + "章": "立", + "鄣": "阝", + "嫜": "女", + "彰": "彡", + "漳": "氵", + "獐": "犭", + "张": "弓", + "召": "口", + "兆": "儿", + "诏": "讠", + "赵": "走", + "笊": "竹", + "棹": "木", + "照": "灬", + "罩": "罒", + "肇": "聿", + "找": "扌", + "沼": "氵", + "爪": "爪", + "钊": "钅", + "招": "扌", + "昭": "日", + "鼌": "黽", + "着": "目", + "哲": "口", + "辄": "车", + "蛰": "虫", + "谪": "讠", + "磔": "石", + "辙": "车", + "这": "辶", + "柘": "木", + "浙": "氵", + "蔗": "艹", + "鹧": "鸟", + "者": "聅", + "锗": "钅", + "赭": "赤", + "褶": "衤", + "蜇": "虫", + "遮": "辶", + "镇": "钅", + "震": "雨", + "圳": "土", + "阵": "阝", + "鸩": "鸟", + "振": "扌", + "朕": "月", + "赈": "贝", + "诊": "讠", + "枕": "木", + "缜": "纟", + "稹": "禾", + "轸": "车", + "畛": "田", + "疹": "疒", + "胗": "月", + "榛": "木", + "箴": "竹", + "臻": "至", + "贞": "贝", + "针": "钅", + "侦": "亻", + "浈": "氵", + "珍": "王", + "桢": "木", + "真": "目", + "砧": "石", + "祯": "礻", + "斟": "斗", + "甄": "瓦", + "蓁": "艹", + "帧": "巾", + "椹": "木", + "鎝": "釒", + "政": "攵", + "症": "疒", + "正": "止", + "证": "讠", + "诤": "讠", + "郑": "阝", + "挣": "扌", + "拯": "扌", + "整": "攵", + "狰": "犭", + "钲": "钅", + "争": "刀", + "征": "彳", + "怔": "忄", + "峥": "山", + "筝": "竹", + "蒸": "艹", + "睁": "目", + "铮": "钅", + "嶒": "山", + "埴": "土", + "职": "耳", + "植": "木", + "殖": "歹", + "絷": "糸", + "跖": "足", + "直": "目", + "值": "亻", + "摭": "扌", + "执": "扌", + "侄": "亻", + "踯": "足", + "膣": "月", + "觯": "角", + "踬": "足", + "置": "罒", + "雉": "隹", + "掷": "扌", + "痔": "疒", + "窒": "穴", + "鸷": "鸟", + "彘": "彑", + "智": "日", + "滞": "氵", + "痣": "疒", + "蛭": "虫", + "骘": "马", + "稚": "禾", + "桎": "木", + "秩": "禾", + "致": "至", + "贽": "贝", + "轾": "车", + "峙": "山", + "栉": "木", + "陟": "阝", + "挚": "手", + "至": "至", + "志": "心", + "忮": "忄", + "豸": "豸", + "制": "刂", + "帙": "巾", + "帜": "巾", + "治": "氵", + "炙": "火", + "质": "贝", + "郅": "阝", + "胵": "月", + "絺": "糹", + "茝": "艹", + "止": "止", + "旨": "日", + "址": "土", + "祉": "礻", + "咫": "口", + "沚": "氵", + "纸": "纟", + "芷": "艹", + "指": "扌", + "枳": "木", + "轵": "车", + "趾": "足", + "黹": "黹", + "酯": "酉", + "胝": "月", + "脂": "月", + "蜘": "虫", + "只": "口", + "之": "丿", + "支": "支", + "卮": "厄", + "汁": "氵", + "芝": "艹", + "枝": "木", + "知": "矢", + "织": "纟", + "肢": "月", + "栀": "木", + "祗": "礻", + "仲": "亻", + "众": "人", + "重": "里", + "踵": "足", + "肿": "月", + "种": "禾", + "冢": "冖", + "终": "纟", + "盅": "皿", + "钟": "钅", + "舯": "舟", + "衷": "衣", + "锺": "钅", + "螽": "虫", + "中": "丨", + "忠": "心", + "妯": "女", + "轴": "车", + "碡": "石", + "胄": "月", + "荮": "艹", + "皱": "皮", + "酎": "酉", + "骤": "马", + "籀": "竹", + "纣": "纟", + "咒": "口", + "宙": "宀", + "绉": "纟", + "昼": "日", + "肘": "月", + "帚": "巾", + "粥": "米", + "洲": "氵", + "州": "川", + "舟": "舟", + "诌": "讠", + "周": "口", + "啁": "口", + "竹": "竹", + "竺": "竹", + "烛": "火", + "逐": "辶", + "舳": "舟", + "瘃": "疒", + "躅": "足", + "箸": "竹", + "翥": "羽", + "贮": "贝", + "伫": "亻", + "住": "亻", + "助": "力", + "苎": "艹", + "杼": "木", + "注": "氵", + "驻": "马", + "柱": "木", + "炷": "火", + "祝": "礻", + "疰": "疒", + "著": "艹", + "蛀": "虫", + "筑": "竹", + "铸": "钅", + "渚": "氵", + "煮": "灬", + "嘱": "口", + "麈": "鹿", + "瞩": "目", + "主": "丶", + "拄": "扌", + "橥": "木", + "铢": "钅", + "蛛": "虫", + "槠": "木", + "潴": "氵", + "朱": "木", + "侏": "亻", + "诛": "讠", + "邾": "阝", + "洙": "氵", + "茱": "艹", + "株": "木", + "珠": "王", + "诸": "讠", + "猪": "犭", + "抓": "扌", + "拽": "扌", + "僝": "亻", + "啭": "口", + "撰": "扌", + "篆": "竹", + "馔": "饣", + "转": "车", + "颛": "页", + "砖": "石", + "专": "一", + "壮": "士", + "状": "犬", + "幢": "巾", + "撞": "扌", + "妆": "女", + "庄": "广", + "桩": "木", + "装": "衣", + "赘": "贝", + "坠": "土", + "缀": "纟", + "惴": "忄", + "缒": "纟", + "隹": "隹", + "追": "辶", + "骓": "马", + "椎": "木", + "锥": "钅", + "准": "冫", + "肫": "月", + "窀": "穴", + "谆": "讠", + "卓": "十", + "琢": "王", + "禚": "礻", + "茁": "艹", + "斫": "斤", + "浊": "氵", + "浞": "氵", + "诼": "讠", + "酌": "酉", + "啄": "口", + "镯": "钅", + "擢": "扌", + "濯": "氵", + "灼": "火", + "拙": "扌", + "倬": "亻", + "捉": "扌", + "桌": "木", + "涿": "氵", + "字": "子", + "自": "自", + "恣": "心", + "渍": "氵", + "眦": "目", + "姊": "女", + "秭": "禾", + "耔": "耒", + "笫": "竹", + "梓": "木", + "紫": "糸", + "滓": "氵", + "籽": "米", + "子": "子", + "茈": "艹", + "泚": "氵", + "薴": "艹", + "觜": "角", + "趑": "走", + "锱": "钅", + "龇": "齿", + "髭": "髟", + "鲻": "鱼", + "訾": "言", + "孜": "子", + "兹": "乺", + "咨": "口", + "姿": "女", + "赀": "贝", + "资": "贝", + "淄": "氵", + "缁": "纟", + "谘": "讠", + "孳": "子", + "嵫": "山", + "滋": "氵", + "粢": "米", + "辎": "车", + "吱": "口", + "菑": "艹", + "粽": "米", + "纵": "纟", + "总": "心", + "偬": "亻", + "踪": "足", + "鬃": "髟", + "宗": "宀", + "综": "纟", + "棕": "木", + "腙": "月", + "奏": "大", + "揍": "扌", + "走": "走", + "鄹": "阝", + "鲰": "鱼", + "邹": "阝", + "驺": "马", + "诹": "讠", + "陬": "阝", + "鄖": "阝", + "足": "足", + "卒": "十", + "族": "方", + "镞": "钅", + "祖": "礻", + "诅": "讠", + "阻": "阝", + "组": "纟", + "俎": "人", + "租": "禾", + "菹": "艹", + "钻": "钅", + "攥": "扌", + "赚": "贝", + "缵": "纟", + "纂": "糸", + "躜": "足", + "蕞": "艹", + "醉": "酉", + "最": "曰", + "罪": "罒", + "嘴": "口", + "撙": "扌", + "尊": "寸", + "遵": "辶", + "樽": "木", + "鳟": "鱼", + "昨": "日", + "作": "亻", + "坐": "土", + "阼": "阝", + "怍": "忄", + "祚": "礻", + "胙": "月", + "唑": "口", + "座": "广", + "做": "亻", + "酢": "酉", + "左": "工", + "佐": "亻" +} diff --git a/npm/trad/README.md b/npm/trad/README.md index a13bb2d..8b18be5 100644 --- a/npm/trad/README.md +++ b/npm/trad/README.md @@ -54,20 +54,21 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) - * [5.9 汉字、拼音工具方法](#59-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - + [5.9.1 查询拼音详细信息: spellInfo](#591-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) - + [5.9.2 拼音音调操作: transformTone](#592-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) - + [5.9.3 是否是汉字: isCnChar](#593-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) - + [5.9.4 比较拼音(汉字)大小: compareSpell](#594-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) - + [5.9.5 比较汉字笔画数大小: compareStroke](#595-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) - + [5.9.6 根据拼音排序: sortSpell](#596-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) - + [5.9.7 根据笔画数排序: sortStroke](#597-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) - * [5.10 其他 api](#510-%E5%85%B6%E4%BB%96-api) - + [5.10.1 .use()](#5101-use) - + [5.10.2 .type](#5102-type) - + [5.10.3 .check](#5103-check) - + [5.10.4 .version](#5104-version) - + [5.10.5 .plugins](#5105-plugins) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) - [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) @@ -76,24 +77,26 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) - * [6.8 使用实例大全:](#68-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) - + [6.8.0 安装使用](#680-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) - + [6.8.1 cnchar 基础库功能](#681-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.2 cnchar-poly 库功能](#682-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.3 cnchar-order 库功能](#683-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.4 cnchar-trad 库功能](#684-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) - - [6.8.4.1 convert 字体转换](#6841-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) - - [6.8.4.2 spell 和 stroke 方法](#6842-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) - + [6.8.5 cnchar-idiom 库功能](#685-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.6 cnchar-xhy 库功能](#686-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.7 工具方法](#687-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - - [6.8.7.1 spellInfo](#6871-spellinfo) - - [6.8.7.2 isCnChar](#6872-iscnchar) - - [6.8.7.3 transformTone](#6873-transformtone) - - [6.8.7.4 compareSpell](#6874-comparespell) - - [6.8.7.5 compareStroke](#6875-comparestroke) - - [6.8.7.6 sortSpell](#6876-sortspell) - - [6.8.7.7 sortStroke](#6877-sortstroke) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) - [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/trad/package.json b/npm/trad/package.json index 361b46b..aac6d3c 100644 --- a/npm/trad/package.json +++ b/npm/trad/package.json @@ -1,6 +1,6 @@ { "name": "cnchar-trad", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "cnchar.trad.min.js", diff --git a/npm/xhy/README.md b/npm/xhy/README.md index a13bb2d..8b18be5 100644 --- a/npm/xhy/README.md +++ b/npm/xhy/README.md @@ -54,20 +54,21 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [5.6 通过笔画数查询原汉字: strokeToWord](#56-%E9%80%9A%E8%BF%87%E7%AC%94%E7%94%BB%E6%95%B0%E6%9F%A5%E8%AF%A2%E5%8E%9F%E6%B1%89%E5%AD%97-stroketoword) * [5.7 成语功能](#57-%E6%88%90%E8%AF%AD%E5%8A%9F%E8%83%BD) * [5.8 歇后语功能](#58-%E6%AD%87%E5%90%8E%E8%AF%AD%E5%8A%9F%E8%83%BD) - * [5.9 汉字、拼音工具方法](#59-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - + [5.9.1 查询拼音详细信息: spellInfo](#591-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) - + [5.9.2 拼音音调操作: transformTone](#592-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) - + [5.9.3 是否是汉字: isCnChar](#593-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) - + [5.9.4 比较拼音(汉字)大小: compareSpell](#594-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) - + [5.9.5 比较汉字笔画数大小: compareStroke](#595-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) - + [5.9.6 根据拼音排序: sortSpell](#596-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) - + [5.9.7 根据笔画数排序: sortStroke](#597-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) - * [5.10 其他 api](#510-%E5%85%B6%E4%BB%96-api) - + [5.10.1 .use()](#5101-use) - + [5.10.2 .type](#5102-type) - + [5.10.3 .check](#5103-check) - + [5.10.4 .version](#5104-version) - + [5.10.5 .plugins](#5105-plugins) + * [5.9 偏旁部首功能](#59-%E5%81%8F%E6%97%81%E9%83%A8%E9%A6%96%E5%8A%9F%E8%83%BD) + * [5.10 汉字、拼音工具方法](#510-%E6%B1%89%E5%AD%97%E6%8B%BC%E9%9F%B3%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + + [5.10.1 查询拼音详细信息: spellInfo](#5101-%E6%9F%A5%E8%AF%A2%E6%8B%BC%E9%9F%B3%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF-spellinfo) + + [5.10.2 拼音音调操作: transformTone](#5102-%E6%8B%BC%E9%9F%B3%E9%9F%B3%E8%B0%83%E6%93%8D%E4%BD%9C-transformtone) + + [5.10.3 是否是汉字: isCnChar](#5103-%E6%98%AF%E5%90%A6%E6%98%AF%E6%B1%89%E5%AD%97-iscnchar) + + [5.10.4 比较拼音(汉字)大小: compareSpell](#5104-%E6%AF%94%E8%BE%83%E6%8B%BC%E9%9F%B3%E6%B1%89%E5%AD%97%E5%A4%A7%E5%B0%8F-comparespell) + + [5.10.5 比较汉字笔画数大小: compareStroke](#5105-%E6%AF%94%E8%BE%83%E6%B1%89%E5%AD%97%E7%AC%94%E7%94%BB%E6%95%B0%E5%A4%A7%E5%B0%8F-comparestroke) + + [5.10.6 根据拼音排序: sortSpell](#5106-%E6%A0%B9%E6%8D%AE%E6%8B%BC%E9%9F%B3%E6%8E%92%E5%BA%8F-sortspell) + + [5.10.7 根据笔画数排序: sortStroke](#5107-%E6%A0%B9%E6%8D%AE%E7%AC%94%E7%94%BB%E6%95%B0%E6%8E%92%E5%BA%8F-sortstroke) + * [5.11 其他 api](#511-%E5%85%B6%E4%BB%96-api) + + [5.11.1 .use()](#5111-use) + + [5.11.2 .type](#5112-type) + + [5.11.3 .check](#5113-check) + + [5.11.4 .version](#5114-version) + + [5.11.5 .plugins](#5115-plugins) - [6.spell stroke 参数](#6spell-stroke-%E5%8F%82%E6%95%B0) * [6.1 spell 参数](#61-spell-%E5%8F%82%E6%95%B0) * [6.2 stroke 参数](#62-stroke-%E5%8F%82%E6%95%B0) @@ -76,24 +77,26 @@ cnchar 由于重建过一次仓库,所以之前的 star 清零了 (〒︿〒) * [6.5 strokeToWord 参数](#65-stroketoword-%E5%8F%82%E6%95%B0) * [6.6 idiom 参数](#66-idiom-%E5%8F%82%E6%95%B0) * [6.7 xhy 参数](#67-xhy-%E5%8F%82%E6%95%B0) - * [6.8 使用实例大全:](#68-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) - + [6.8.0 安装使用](#680-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) - + [6.8.1 cnchar 基础库功能](#681-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.2 cnchar-poly 库功能](#682-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.3 cnchar-order 库功能](#683-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.4 cnchar-trad 库功能](#684-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) - - [6.8.4.1 convert 字体转换](#6841-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) - - [6.8.4.2 spell 和 stroke 方法](#6842-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) - + [6.8.5 cnchar-idiom 库功能](#685-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.6 cnchar-xhy 库功能](#686-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) - + [6.8.7 工具方法](#687-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) - - [6.8.7.1 spellInfo](#6871-spellinfo) - - [6.8.7.2 isCnChar](#6872-iscnchar) - - [6.8.7.3 transformTone](#6873-transformtone) - - [6.8.7.4 compareSpell](#6874-comparespell) - - [6.8.7.5 compareStroke](#6875-comparestroke) - - [6.8.7.6 sortSpell](#6876-sortspell) - - [6.8.7.7 sortStroke](#6877-sortstroke) + * [6.8 radical 参数](#68-radical-%E5%8F%82%E6%95%B0) + * [6.9 使用实例大全:](#69-%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B%E5%A4%A7%E5%85%A8) + + [6.9.0 安装使用](#690-%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8) + + [6.9.1 cnchar 基础库功能](#691-cnchar-%E5%9F%BA%E7%A1%80%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.2 cnchar-poly 库功能](#692-cnchar-poly-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.3 cnchar-order 库功能](#693-cnchar-order-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.4 cnchar-trad 库功能](#694-cnchar-trad-%E5%BA%93%E5%8A%9F%E8%83%BD) + - [6.9.4.1 convert 字体转换](#6941-convert-%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2) + - [6.9.4.2 spell 和 stroke 方法](#6942-spell-%E5%92%8C-stroke-%E6%96%B9%E6%B3%95) + + [6.9.5 cnchar-idiom 库功能](#695-cnchar-idiom-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.6 cnchar-xhy 库功能](#696-cnchar-xhy-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.7 cnchar-radical 库功能](#697-cnchar-radical-%E5%BA%93%E5%8A%9F%E8%83%BD) + + [6.9.8 工具方法](#698-%E5%B7%A5%E5%85%B7%E6%96%B9%E6%B3%95) + - [6.9.8.1 spellInfo](#6981-spellinfo) + - [6.9.8.2 isCnChar](#6982-iscnchar) + - [6.9.8.3 transformTone](#6983-transformtone) + - [6.9.8.4 compareSpell](#6984-comparespell) + - [6.9.8.5 compareStroke](#6985-comparestroke) + - [6.9.8.6 sortSpell](#6986-sortspell) + - [6.9.8.7 sortStroke](#6987-sortstroke) - [7.应用例子](#7%E5%BA%94%E7%94%A8%E4%BE%8B%E5%AD%90) @@ -162,11 +165,12 @@ import cnchar from 'cnchar'; 12. 支持 **繁体字** 拼音、笔画数及以上所有功能,实现和简体字一样的功能 13. 支持 **成语** 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语 14. 支持 **歇后语** 查询功能,支持模糊查询 -15. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** -16. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) -17. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 -18. **typescript支持**,支持在typescript中调用 -19. 丰富的配置,按功能拆分成7个库按需取用 +15. 支持 **偏旁部首** 查询功能 +16. 提供汉字工具方法,方便开发者更便捷高效地 **操作拼音和汉字** +17. **体积小**,min 版本仅 46 kb,zip 版本 34 kb (含有大量汉字拼音字典) +18. **多端可用**,可用于 **浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack**...,支持所有 js 能运行的环境 +19. **typescript支持**,支持在typescript中调用 +20. 丰富的配置,按功能拆分成7个库按需取用 ### 2.概览 @@ -181,6 +185,7 @@ import cnchar from 'cnchar'; | cnchar-draw | 绘制笔画库 | 支持可视化绘制汉字,该库可脱离cnchar使用,该库仅在浏览器环境下可用 | 2.1+ | | cnchar-idiom | 成语库 | 支持成语查询等功能 | 2.2+ | | cnchar-xhy | 歇后语库 | 支持歇后语查询等功能 | 2.2+ | +| cnchar-radical | 偏旁部首库 | 支持查询汉字偏旁部首 | 2.2.5+ | ### 3.安装 @@ -195,12 +200,12 @@ npm i cnchar 安装附加功能库: ``` -npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy +npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical ``` -当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy三个库可以独立使用) +当然您也可以按需安装其中的几个,但是 `cnchar` 这个基础库是必须安装的(draw、idiom、xhy、radical四个库可以独立使用) -或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的四个库 +或者您可以通过安装`cnchar-all`来使用完整功能,这个库引用了上面的所有插件库 ``` npm i cnchar-all @@ -215,6 +220,7 @@ npm i cnchar-all + ``` 或使用以下cdn,包含了以上七个库 @@ -238,6 +244,7 @@ import 'cnchar-trad'; import 'cnchar-draw'; import 'cnchar-idiom'; import 'cnchar-xhy'; +import 'cnchar-radical'; // 插件请按需取用 console.log('汉字'.spell()); // prototype 方式调用 @@ -258,9 +265,10 @@ var order = require('cnchar-order'); var trad = require('cnchar-trad'); var idiom = require('cnchar-idiom'); var xhy = require('cnchar-xhy'); +var radical = require('cnchar-radical'); // 插件请按需取用 // 注:cnchar-draw 在非浏览器环境下不可使用 -cnchar.use(poly, order, trad, idiom, xhy); +cnchar.use(poly, order, trad, idiom, xhy, radical); console.log('汉字'.spell()); // prototype 方式调用 console.log(cnchar.spell('汉字')); // cnchar api 调用 @@ -280,6 +288,7 @@ console.log(cnchar.spell('汉字')); // cnchar api 调用 + ``` -##### 6.8.1 cnchar 基础库功能 +##### 6.9.1 cnchar 基础库功能 ```js //spell 功能 @@ -1024,7 +1085,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 4. stroke 方法 非中文字符会笔画数会计为 0 5. stroke 方法 order 模式 非中文字符会返回 undefined -##### 6.8.2 cnchar-poly 库功能 +##### 6.9.2 cnchar-poly 库功能 该库用于准确识别多音词,同样支持 6.3.1 中的其他参数功能 @@ -1034,7 +1095,7 @@ cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻儿入八冂几凵 '长大了'.spell('poly'); // 返回 '(Zhang|Chang)(Da|Dai)(Le|Liao)' ``` -##### 6.8.3 cnchar-order 库功能 +##### 6.9.3 cnchar-order 库功能 该库用于查询汉字笔画顺序、笔画名称等,返回值为 数组 @@ -1090,11 +1151,11 @@ cnchar.orderToWord(['横', '撇', '捺'], 'contain'); // 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢乔..." // 省略后面的 ``` -##### 6.8.4 cnchar-trad 库功能 +##### 6.9.4 cnchar-trad 库功能 该库用于支持繁体字火星文转换及为拼音笔画数等基本功能提供繁体字支持 -###### 6.8.4.1 convert 字体转换 +###### 6.9.4.1 convert 字体转换 ```js '一个人'.convertSimpleToTrad(); // 返回 "壹個人" 等价于 cnchar.convert.simpleToTrad @@ -1116,7 +1177,7 @@ cnchar.convert.sparkToSimple('①个亾'); cnchar.convert.sparkToTrad('①个亾'); ``` -###### 6.8.4.2 spell 和 stroke 方法 +###### 6.9.4.2 spell 和 stroke 方法 该库增加了对于繁体字的拼音笔画功能扩展,其他基础用法与 基础库一致: @@ -1132,7 +1193,7 @@ cnchar.convert.sparkToTrad('①个亾'); '長大'.stroke('order', 'shape', 'simple'); // 返回 [undefined, ["㇐","㇓","㇏"]] ``` -##### 6.8.5 cnchar-idiom 库功能 +##### 6.9.5 cnchar-idiom 库功能 该库为cnchar扩展了成语功能 @@ -1143,7 +1204,7 @@ cnchar.idiom('shang', 'spell') // ['伤风败化', '伤风败俗', ... ] cnchar.idiom('shang4', 'spell', 'tone') // ['伤风败化', '伤风败俗', ... ] ``` -##### 6.8.6 cnchar-xhy 库功能 +##### 6.9.6 cnchar-xhy 库功能 该库为cnchar扩展了歇后语功能 @@ -1154,18 +1215,29 @@ cnchar.xhy('大水', 'fuzzy', 'answer') // ['泥沙俱下', '后浪推前浪', . cnchar.xhy('上晃下摇', 'fuzzy', 'answer', 'second') // ['醉汉过铁索桥', '扶着醉汉过破桥'] ``` -##### 6.8.7 工具方法 +##### 6.9.7 cnchar-radical 库功能 + +该库为cnchar扩展了偏旁部首功能 + +```js +cnchar.radical('你'); // "亻", +cnchar.radical('你好呀'); // "亻女口" +cnchar.radical('你好呀', 'array'); // ["亻", "女", "口"] +cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"] +``` + +##### 6.9.8 工具方法 cnchar提供了一些汉字工具方法,方便开发者更便捷高效地操作拼音和汉字 -###### 6.8.7.1 spellInfo +###### 6.9.8.1 spellInfo ```js cnchar.spellInfo('shàng'); // 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"} ``` -###### 6.8.7.2 isCnChar +###### 6.9.8.2 isCnChar ```js cnchar.isCnChar('a') // false @@ -1175,7 +1247,7 @@ cnchar.isCnChar('国') // true cnchar.isCnChar('國') // true ``` -###### 6.8.7.3 transformTone +###### 6.9.8.3 transformTone ```js cnchar.transformTone('lv2') // {spell: 'lü', tone: 2, index: 2, isTrans: true} @@ -1184,7 +1256,7 @@ cnchar.transformTone('lv2', true, 'up') // {spell: 'LǗ', tone: 2, index: 2, isT cnchar.transformTone('lǘ') // {spell: 'lü', tone: 2, index: 2, isTrans: false} ``` -###### 6.8.7.4 compareSpell +###### 6.9.8.4 compareSpell ```js cnchar.compareSpell('ao', 'ai') // 'more' @@ -1196,7 +1268,7 @@ cnchar.compareSpell('品', '频', true) // 'more' cnchar.compareSpell('贫', '频', true) // 'even' ``` -###### 6.8.7.5 compareStroke +###### 6.9.8.5 compareStroke ```js cnchar.compareStroke('你', '好') // 'more' @@ -1206,7 +1278,7 @@ cnchar.compareStroke('一个', '好') // 'less' cnchar.compareStroke('你', 14) // 'less' ``` -###### 6.8.7.6 sortSpell +###### 6.9.8.6 sortSpell ```js cnchar.sortSpell(['你', '好', '吗']) // ['好', '吗', '你'] @@ -1217,7 +1289,7 @@ cnchar.sortSpell(['拼', '品', '频', '爱'], 'tone', 'desc') // ['品', '频', cnchar.sortSpell('拼品频爱', 'tone', 'desc') // '品频拼爱' ``` -###### 6.8.7.7 sortStroke +###### 6.9.8.7 sortStroke ```js cnchar.sortStroke(['一', '三', '二']) // ['一', '二', '三'] diff --git a/npm/xhy/package.json b/npm/xhy/package.json index 77cb4aa..3130143 100644 --- a/npm/xhy/package.json +++ b/npm/xhy/package.json @@ -1,6 +1,6 @@ { "name": "cnchar-xhy", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.js", "unpkg": "cnchar.xhy.min.js", diff --git a/package.json b/package.json index eef8525..de0ec8a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cnchar", - "version": "2.2.4", + "version": "2.2.5", "description": "功能全面、多端支持的汉字拼音笔画js库,支持多音字、繁体字、火星文", "main": "index.html", "author": "theajack ", diff --git a/public/index.js b/public/index.js index 7263491..c471e2d 100644 --- a/public/index.js +++ b/public/index.js @@ -5,6 +5,7 @@ import '../src/plugin/poly'; import '../src/plugin/draw'; import '../src/plugin/idiom'; import '../src/plugin/xhy'; +import '../src/plugin/radical'; // import spell from '../src/main/spell-dict-jian.json'; // // import cncharDraw from '../src/plugin/draw'; diff --git a/src/main/index.d.ts b/src/main/index.d.ts index e25f5d6..3047101 100644 --- a/src/main/index.d.ts +++ b/src/main/index.d.ts @@ -4,7 +4,7 @@ declare type spellArg = 'array' | 'low' | 'up' | 'first' | 'poly' | 'tone' | 'si declare type strokeArg = 'letter' | 'shape' | 'count' | 'name' | 'detail' | 'array' | 'order' | 'simple' | 'trad'; declare type spellToWordArg = 'poly' | 'alltone' | 'array' | 'simple' | 'trad'; declare type strokeToWordArg = 'array' | 'simple' | 'trad'; -declare type pluginArg = 'order' | 'trad' | 'poly' | 'draw' | 'idiom' | 'xhy'; +declare type pluginArg = 'order' | 'trad' | 'poly' | 'draw' | 'idiom' | 'xhy' | 'radical'; declare type toneType = 0 | 1 | 2 | 3 | 4; declare type compareType = 'more' | 'less' | 'even'; @@ -35,6 +35,7 @@ export declare interface CnCharStatic { orderToWord?: object; idiom?: object; xhy?: object; + radical?: object; }; check: boolean; readonly version: string; diff --git a/src/main/tool.js b/src/main/tool.js index bc03477..a739cb3 100644 --- a/src/main/tool.js +++ b/src/main/tool.js @@ -299,6 +299,8 @@ function checkArgs (type, args, jumpNext) { } } else if (type === 'xhy') { + } else if (type === 'radical') { + } warnArgs(useless, '无效', type); warnArgs(ignore, '被忽略', type); diff --git a/src/main/version.js b/src/main/version.js index 4aff78d..29e7ab3 100644 --- a/src/main/version.js +++ b/src/main/version.js @@ -1 +1 @@ -module.exports = '2.2.4'; \ No newline at end of file +module.exports = '2.2.5'; \ No newline at end of file diff --git a/src/plugin/radical/index.d.ts b/src/plugin/radical/index.d.ts new file mode 100644 index 0000000..5b2cb77 --- /dev/null +++ b/src/plugin/radical/index.d.ts @@ -0,0 +1,15 @@ +declare type radicalArg = 'array'; + +export declare interface Radical { + (text:string | Array, ...radicalArgs: Array): string | Array; +} + +declare const radical: Radical; + +declare module 'cnchar' { + interface CnCharStatic { + radical: Radical; + } +} + +export default radical; \ No newline at end of file diff --git a/src/plugin/radical/index.js b/src/plugin/radical/index.js index 630f041..117c133 100644 --- a/src/plugin/radical/index.js +++ b/src/plugin/radical/index.js @@ -1,25 +1,30 @@ -const radicals = require('./radicals.json'); -function main(cnchar) { +const {radical, arg, setCnchar} = require('./radical'); + +function main (cnchar) { if (cnchar.plugins.indexOf('radical') !== -1) { return; } cnchar.plugins.push('radical'); cnchar.radical = radical; + cnchar.type.radical = arg; } -function init(cnchar) { +function init (cnchar) { + if (typeof window === 'object' && !window.CncharRadical) { + window.CncharRadical = radical; + } if (typeof window === 'object' && window.CnChar) { main(window.CnChar); + setCnchar(window.CnChar); } else if (typeof cnchar !== 'undefined') { main(cnchar); + setCnchar(cnchar); } } -function radical(char) { - return radicals[char]; -} +radical.init = init; init(); -module.exports = init; +module.exports = radical; \ No newline at end of file diff --git a/src/plugin/radical/radical.js b/src/plugin/radical/radical.js new file mode 100644 index 0000000..ce867c9 --- /dev/null +++ b/src/plugin/radical/radical.js @@ -0,0 +1,44 @@ +const radicals = require('./radicals.json'); + +let arg = { + array: 'array' +}; + +let _cnchar = null; + +function radical (...args) { + if (args.length === 0) { + console.warn('idiom: 请输入搜索项'); + return; + } + let input = args[0]; + args = args.slice(1); + if (_cnchar) { + _cnchar._.checkArgs('radical', args); + } + + let res = ''; + for (let i = 0; i < input.length; i++) { + let char = radicals[input[i]]; + if (char) { + res += char; + } else { + res += input[i]; + } + } + if (args.indexOf(arg.array) !== -1 || input instanceof Array) { + return res.split(''); + } + return res; +} + +function setCnchar (cnchar) { + _cnchar = cnchar; + // initToneCodes(cnchar); +} + +module.exports = { + radical, + arg, + setCnchar +}; \ No newline at end of file diff --git a/src/plugin/radical/radicals-generator.js b/src/plugin/radical/radicals-generator.js index 6ad4d36..a91897c 100644 --- a/src/plugin/radical/radicals-generator.js +++ b/src/plugin/radical/radicals-generator.js @@ -1,7 +1,7 @@ -function buildData() { - const { createReadStream, promises: fsPromises } = require('fs'); - const { join } = require('path'); - const { createInterface } = require('readline'); +function buildData () { + const {createReadStream, promises: fsPromises} = require('fs'); + const {join} = require('path'); + const {createInterface} = require('readline'); const wordRegex = /"word": "(?.*)"/; const radicalsRegex = /"radicals": "(?.*)"/; // https://raw.githubusercontent.com/pwxcoo/chinese-xinhua/master/data/word.json @@ -16,7 +16,7 @@ function buildData() { autoClose: true, emitClose: true, }); - const readLine = createInterface({ input: readStream }); + const readLine = createInterface({input: readStream}); readStream.on('error', (err) => reject(err)); readLine.on('close', () => resolve(words)); readLine.on('line', (line) => { diff --git a/test/index.js b/test/index.js index d3a6d3e..87c99c7 100644 --- a/test/index.js +++ b/test/index.js @@ -1,4 +1,4 @@ -let order, trad, poly, idiom, xhy, cnchar; +let order, trad, poly, idiom, xhy, radical, cnchar; if (process.argv[2] === 'npm') { cnchar = require('../npm/cnchar'); @@ -7,6 +7,7 @@ if (process.argv[2] === 'npm') { poly = require('../npm/poly'); idiom = require('../npm/idiom'); xhy = require('../npm/xhy'); + radical = require('../npm/radical'); console.log('****TEST NPM****'); } else { cnchar = require('../src/main/index'); @@ -15,11 +16,12 @@ if (process.argv[2] === 'npm') { poly = require('../src/plugin/poly'); idiom = require('../src/plugin/idiom'); xhy = require('../src/plugin/xhy'); + radical = require('../src/plugin/radical'); console.log('****TEST SRC****'); } console.log(); -cnchar.use(order, trad, poly, idiom, xhy); +cnchar.use(order, trad, poly, idiom, xhy, radical); let config = require('./test.config'); diff --git a/test/test.config.js b/test/test.config.js index 11dc95b..4ee5339 100644 --- a/test/test.config.js +++ b/test/test.config.js @@ -297,5 +297,22 @@ module.exports = [ ['一', 2, '三'], ['三', '二', '一'] ] + }, + { + name: '测试偏旁部首', + test (cnchar) { + return [ + cnchar.radical('你'), + cnchar.radical('你好呀'), + cnchar.radical('你好呀', 'array'), + cnchar.radical(['你', '好', '呀']), + ]; + }, + expect: [ + '亻', + '亻女口', + ['亻', '女', '口'], + ['亻', '女', '口'] + ] } ]; \ No newline at end of file