🚀 功能全面、多端支持的汉字拼音笔画 js 库
English | 在线试用/文档 | 更新日志 | 反馈错误/缺漏 | Gitee | QQ Group: 958278438 | 留言板
应用例子
开始文档之前,先通过一些应用案例看看 cnchar 能够做些什么
汉字打字游戏 | 打字弹钢琴 | 成语接龙 | 通讯录排序 | 取名字 | 输入法 | 歇后语 | 语音识别与合成 | 简繁体转换
赞赏
开源维护不易。如果该项目对您有帮助且您有余力,可以微信扫码请作者喝一杯可乐或咖啡,非常感谢!
如捐赠,请备注留一下github个人地址,后续会展示在此页中。
赞赏记录
注:最新统计时间为 2023/06/13,总金额=133元
昵称 | 金额(元) | 时间 | 留言 | 渠道 | 作者备注 |
---|---|---|---|---|---|
69247 | 1 | 2023/05/25 | 学生党给点微薄的赞助 | 微信赞赏码 | |
江皓波 | 100 | 2023/05/05 | draw对中学生学笔顺很有用,希望笔画能添加方向箭头。加油! | 微信赞赏码 | |
普通的disco | 20 | 2023/04/01 | 大佬开源维护不易,加油!希望能有部首查字的功能~ | 微信赞赏码 | v3.2.4中已增加该功能 |
mango | 5 | 2023/02/10 | - | 微信赞赏码 | |
阿炜 | 5 | 2022/11/11 | 阿炜ky2700 | 微信赞赏码 | |
slako | 1 | 2022/10/20 | 不明觉厉 | 微信赞赏码 | |
王三金 | 1 | 2022/10/16 | - | 微信赞赏码 |
前言
感谢同学们对于 cnchar 的支持,由于 cnchar 词库来源于网络,虽然经过了本人的修改和扩充,但是还是难免有错误与缺漏之处,希望大家可以将使用中发现的错误与缺漏之处 反馈 给我(或自行修改提交,经过审查无误过后会合到 cnchar 中)
0. 快速使用
使用 npm 安装:
npm i cnchar
import cnchar from 'cnchar';
'汉字'.spell();
'汉字'.stroke();
使用 script 标签使用:
如果 jsdelivr 挂了可以使用 unpkg (https://unpkg.com/cnchar/cnchar.min.js)
<script src="https://fastly.jsdelivr.net/npm/cnchar/cnchar.min.js"></script>
<script>
'汉字'.spell();
'汉字'.stroke();
</script>
1.功能
- 获取 汉字拼音 ,支持首字母、大小写、数组分割、备选 多音字 等功能
- 支持 多音词、拼音音调
- 获取汉字 笔画数 、笔画顺序 、笔画详细名称
- 支持可视化 绘制汉字笔画 、多种绘制模式可选
- 支持 语音合成 和 语音识别
- 支持 汉字组词 和 汉字解释
- 支持 简体字 、 繁体字 、 火星文 互转
- 支持 查找 某拼音的所有 汉字 ,繁体字,多音字
- 支持 查找 指定笔画数的所有 汉字 ,繁体字
- 支持 根据笔画顺序查询 汉字
- 支持 查询拼音的信息,包含声母、韵母、音调、音调位置的等
- 支持 繁体字 拼音、笔画数及以上所有功能,实现和简体字一样的功能
- 支持 成语 查询功能,可以按照汉字、拼音(声调)、笔画数查询成语
- 支持 歇后语 查询功能,支持模糊查询
- 支持 偏旁部首 查询功能
- 支持 随机生成 拼音、汉字、词语、成语、歇后语、中文名字
- 支持 汉字编码查询 、 汉字信息查询
- 支持 拼音输入法、五笔输入法、支持联想输入
- 支持 自定义插件,独立简单的接入方式,完整使用cnchar所有功能
- 支持 自定义 拼音笔画等数据,使用更灵活
- 对于部分大词典,支持 离线使用、自定义部署
- 提供汉字工具方法,方便开发者更便捷高效地 操作拼音和汉字
- 体积小,min 版本仅 75 kb,zip 版本 50 kb (含有大量汉字拼音字典)
- 多端可用,可用于 浏览器、nodejs、小程序/小游戏、ReactNative/Weex/Uniapp/Electron、webpack...,支持所有 js 能运行的环境
- typescript,主库及所有插件库均使用typescript开发
- 丰富的配置,按功能拆分成插件,按需取用
- 支持 IE9及以上版本
2.功能及插件概览
考虑到不同的需求,cnchar 的功能被拆分到以下多个插件库中,方便开发者按需取用:
名称 | 描述 | 功能 | 支持版本 | node支持 | 小程序 |
---|---|---|---|---|---|
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+ | 是 | 是 |
cnchar-words | 汉字组词库 | 支持根据单个或多个汉字查询词组 | 3.1.0+ | 是 | 是 |
cnchar-explain | 汉字解释库 | 支持查询汉字含义 | 3.1.0+ | 是 | 是 |
cnchar-voice | 语音识别和语音合成 | 支持对中文进行发音与合成 | 3.1.0+ | 否 | 部分 |
cnchar-data | 离线词典库 | 用以支持部分插件库的离线使用及自定义部署 | 3.1.0+ | 是 | 是 |
cnchar-random | 随机库 | 随机生成拼音、汉字、词语、成语、歇后语 | 3.2.0+ | 是 | 是 |
cnchar-input | 输入法支持 | 支持拼音和五笔输入法结果 | 3.2.0+ | 是 | 是 |
cnchar-code | 汉字编码库 | 汉字编码查询 | 3.2.0+ | 是 | 是 |
cnchar-info | 汉字信息查询 | 用于查询汉字信息 | 3.2.0+ | 是 | 是 |
cnchar-name | 中文名信息 | 用于随机生成名字等功能 | 3.2.0+ | 是 | 是 |
详细API文档从v3.2.4起不在该readme中维护,前往 在线文档
3.安装
3.1 使用 npm 安装
安装基础库:
npm i cnchar
安装附加功能库:
npm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical cnchar-words cnchar-explain cnchar-voice cnchar-random cnchar-code cnchar-input cnchar-info cnchar-name
当然您也可以按需安装其中的几个,插件库也都可以脱离cnchar独立安装使用,不过部分仓库功能强依赖于cnchar, 如 cnchar-poly cnchar-order cnchar-trad
或者您可以通过安装cnchar-all
来使用完整功能,这个库引用了上面的所有插件库
npm i cnchar-all
3.2 cdn 引入
如果 jsdelivr 挂了可以使用 unpkg (https://unpkg.com/cnchar/cnchar.min.js)
<script src="https://fastly.jsdelivr.net/npm/cnchar/cnchar.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-order/cnchar.order.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-trad/cnchar.trad.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-draw/cnchar.draw.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-idiom/cnchar.idiom.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-xhy/cnchar.xhy.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-radical/cnchar.radical.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-words/cnchar.words.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-explain/cnchar.explain.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-voice/cnchar.voice.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-random/cnchar.random.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-code/cnchar.code.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-input/cnchar.input.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-info/cnchar.info.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-name/cnchar.name.min.js"></script>
或使用以下cdn,包含了以上所有插件库
<script src="https://fastly.jsdelivr.net/npm/cnchar-all/cnchar.all.min.js"></script>
4.使用
4.1 webpack浏览器环境(有window对象)
npm 安装好几个库之后:
// 请保证最先引入 cnchar 基础库,其他几个库顺序无所谓
import cnchar from 'cnchar';
import 'cnchar-poly';
// ... 其他插件请参考第二章 2. 功能及插件概览
// 插件请按需取用
console.log('汉字'.spell()); // prototype 方式调用
console.log(cnchar.spell('汉字')); // cnchar api 调用
浏览器环境下会在 window
对象上定义 cnchar
对象
4.2 nodejs 等非浏览器环境
非浏览器环境下需要使用 cnchar.use()
方法加载功能库:
// 请保证最先引入 cnchar 基础库,其他几个库顺序无所谓
var cnchar = require('cnchar');
var poly = require('cnchar-poly');
// ... 其他插件请参考第二章 2. 功能及插件概览
// 插件请按需取用
// 注:cnchar-draw,cnchar-voice 在非浏览器环境下不可使用
cnchar.use(poly);
console.log('汉字'.spell()); // prototype 方式调用
console.log(cnchar.spell('汉字')); // cnchar api 调用
其他使用方式与浏览器环境一致
4.3 原生浏览器环境
原生浏览器环境就需要使用 script 标签引入 js 文件:
<script src="https://fastly.jsdelivr.net/npm/cnchar/cnchar.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js"></script>
<!--... 其他插件请参考第二章 2. 功能及插件概览-->
<script>
console.log('汉字'.spell()); // prototype 方式调用
console.log(cnchar.spell('汉字')); // cnchar api 调用
</script>
致谢
cnchar-draw
库功能基于 hanzi-writer, 特此表示感谢!
Contributors