發(fā)布時間:2024-01-23閱讀(14)
cnchar 是一款功能全面、多端支持的漢字拼音筆畫 js 庫。
感謝同學們對于 cnchar 的支持,由于 cnchar 詞庫來源于網(wǎng)絡,雖然經(jīng)過了本人的修改和擴充,但是還是難免有錯誤與缺漏之處,希望大家可以將使用中發(fā)現(xiàn)的錯誤與缺漏之處 反饋。
cnchar-draw 庫功能基于 hanzi-writer, 特此表示感謝!
二、界面展示應用例子
漢字打字游戲

打字彈鋼琴

cnchar官網(wǎng)

功能全面
多端支持
按需取用
關(guān)于該文檔
由于文檔較長,做一下簡介,請按照需要閱讀
使用 npm 安裝:
npm i cnchar
import cnchar from cnchar;漢字.spell();漢字.stroke();
使用 script 標簽使用:
<script src="https://cdn.jsdelivr.net/npm/cnchar/cnchar.min.js"></script><script> 漢字.spell(); 漢字.stroke();</script>
更多詳細使用示例 | 參數(shù)詳細介紹
1.功能考慮到不同的需求,cnchar 的功能被拆分到以下七個庫中,方便開發(fā)者按需取用:
名稱 | 描述 | 功能 | 支持版本 |
cnchar | 主 js 庫,其他三個庫依賴于這個庫 | 含有簡體字拼音、多音字、音調(diào)、筆畫數(shù)等功能 | -- |
cnchar-poly | 多音詞庫 | 含有識別多音詞功能 | -- |
cnchar-order | 筆畫順序庫 | 含有識別筆畫順序、筆畫名稱、筆畫形狀等功能 | -- |
cnchar-trad | 繁體字庫 | 支持繁體、火星、簡體互轉(zhuǎn),支持繁體拼音筆畫多音字全功能 | -- |
cnchar-draw | 繪制筆畫庫 | 支持可視化繪制漢字,該庫可脫離cnchar使用,該庫僅在瀏覽器環(huán)境下可用 | 2.1 |
cnchar-idiom | 成語庫 | 支持成語查詢等功能 | 2.2 |
cnchar-xhy | 歇后語庫 | 支持歇后語查詢等功能 | 2.2 |
cnchar-radical | 偏旁部首庫 | 支持查詢漢字偏旁部首 | 2.2.5 |
安裝基礎庫:
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
<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-idiom/cnchar.idiom.min.js"></script><script src="https://cdn.jsdelivr.net/npm/cnchar-xhy/cnchar.xhy.min.js"></script><script src="https://cdn.jsdelivr.net/npm/cnchar-radical/cnchar.radical.min.js"></script>
或使用以下cdn,包含了以上七個庫
<script src="https://cdn.jsdelivr.net/npm/cnchar-all/cnchar.all.min.js"></script>
npm 安裝好幾個庫之后:
// 請保證最先引入 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 方式調(diào)用console.log(cnchar.spell(漢字)); // cnchar api 調(diào)用
瀏覽器環(huán)境下會在 window 對象上定義 cnchar 對象
4.2 nodejs 等非瀏覽器環(huán)境非瀏覽器環(huán)境下需要使用 cnchar.use() 方法加載功能庫:
// 請保證最先引入 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 在非瀏覽器環(huán)境下不可使用cnchar.use(poly, order, trad, idiom, xhy, radical);console.log(漢字.spell()); // prototype 方式調(diào)用console.log(cnchar.spell(漢字)); // cnchar api 調(diào)用
其他使用方式與瀏覽器環(huán)境一致
4.3 原生瀏覽器環(huán)境原生瀏覽器環(huán)境就需要使用 script 標簽引入 js 文件:
<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-xhy/cnchar.xhy.min.js"></script><script src="https://cdn.jsdelivr.net/npm/cnchar-radical/cnchar.radical.min.js"></script><script> console.log(漢字.spell()); // prototype 方式調(diào)用 console.log(cnchar.spell(漢字)); // cnchar api 調(diào)用</script>
類型聲明:cnchar.d.ts | cnchar-order.d.ts | cnchar-trad.d.ts
注:該章節(jié)僅介紹API用法,更多使用實例請參考第六章
5.1 拼音筆畫基礎 API: spell & stroke為了盡可能使 api 使用簡單,該庫設計了兩個主要的非常簡潔的 api,并保證調(diào)用方式一致:
// 獲取漢字的拼音、多音詞、音調(diào)等都集成在以下方法上cnchar.spell(string[,...args]);// 或string.spell([...args])// 獲取漢字的筆畫、筆畫順序等都集成在以下方法上cnchar.stroke(string[,...args]);// 或string.stroke([...args])
該 api 設計一致,string 表示要處理的漢字字符串
關(guān)鍵在于可選參數(shù)的配置,參數(shù)配置將在第六章單獨介紹
5.2 可視化繪制漢字: draw類型聲明:cnchar.draw.d.ts
cnchar-draw 庫用于支持在瀏覽器環(huán)境下可視化繪制漢字,所以該庫僅在瀏覽器環(huán)境下可用。繪制模式有 normal,animation,stroke,test 四種模式可選。
5.2.1 使用使用方式如下:
cnchar.draw(你好, options); // options 為可選參數(shù), 在5.2.2 種會詳細介紹
運行結(jié)果如下:

該庫支持脫離cnchar 獨立使用
import draw from cnchar-draw;draw(你好)
使用cdn引用時,會在window對向上暴露 CncharDraw 對象
5.2.2 參數(shù)draw 的參數(shù)比較繁多,首先需要理解的是,draw 分為四種繪制模式:
以下是 options 的所有可選參數(shù)及描述,使用詳情請參考在線文檔:
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, // 數(shù)值, 默認 20。 畫布的漢字和邊緣之間的填充 outlineColor?: string;//: #ddd, // 十六進制字符, 默認 #DDD。 strokeColor?: string;//: #555, // 十六進制字符, 默認 #555。繪制每個筆劃的顏色。 radicalColor?: string;//: null, // 十六進制字符, 默認 null。 如果存在偏旁部首數(shù)據(jù),則在筆劃中繪制偏旁部首的顏色。 如果沒有設置,激光將繪制與其他筆劃相同的顏色。 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, // 數(shù)值, 默認 1。 繪制每個筆劃的速度必須大于0。增加此數(shù)字可以更快地繪制筆劃,減少繪制筆劃的速度更慢。 delayBetweenStrokes?: number;// : 1000, // 數(shù)值, 默認 1000。 動畫進行中每個筆畫之間的間隔時間(以毫秒為單位)。 delayBetweenLoops?: number;// : 200, // 數(shù)值, 默認 2000。 循環(huán)動畫時每個動畫循環(huán)之間的時間(以毫秒為單位)。 autoAnimate?: boolean;// : true, animateComplete?: Function;// : () => {}, stepByStep?: boolean;// : true, loopAnimate?: boolean;// : false, }, test?: { strokeHighlightSpeed?: number;// : 20, // 數(shù)值, 默認 20。 在測驗中給出提示時突出顯示每個筆劃的速度必須大于0。增加此數(shù)字以突出顯示更快,減少以突出顯示更慢。 highlightColor?: number;// : #aaf, // 十六進制字符, 默認 #AAF。 用于在測驗中突出顯示的顏色。 drawingColor?: number;// : #333, // 十六進制字符, 默認 #333。 測驗期間繪制的線條顏色。 drawingWidth?: number;// : 4, // 數(shù)值, 默認 4。 進行測驗時繪制的線條寬度。 showHintAfterMisses?: number;// : 3, // 整數(shù), 默認 3 中風高亮提示之前的未命中數(shù)被給予用戶。 設置為 false 以禁用。 創(chuàng)建測驗時也可以設置此項。 highlightOnComplete?: number;// : true, // 布爾值, 默認 true。 控制當用戶完成繪制整個字符時,測驗是否會短暫突出顯示字符。 創(chuàng)建測驗時也可以設置此項。 highlightCompleteColor?: number;// : null, // 十六進制字符, 默認 null。 在測驗中突出顯示字符時使用的顏色。 如果未設置,則將使用highlightColor。 僅當highlightOnComplete為true時才相關(guān)。 onTestStatus?(args: TestStatus):void;// : null, // ({index, status, data})=>{} }};
cnchar.draw 方法會返回一個 writer 對象
declare interface IWriter { option: IDrawOption; el: HTMLElement; type: TDrawType; text: Array<string>; writers: Array<HanziWriter>; startAnimation(): boolean; pauseAnimation(): void; resumeAnimation(): void; drawNextStroke(onComplete?: ()=>void): boolean;}
當 drawType = animation 時,以下幾個api可以用戶控制動畫
繪制模式分為連續(xù)繪制 和 單筆畫繪制,默認為連續(xù)繪制模式
單筆劃繪制模式需要 option.animation.autoAnimate = false 且調(diào)用 drawNextStroke 方法
5.2.3.1 startAnimation當 option.animation.autoAnimate = false 時,調(diào)用該api可以開始繪制,且開啟動連續(xù)繪制模式
const writer = cnchar.draw(你好, { type: cnchar.draw.TYPE.ANIMATION, animation: { autoAnimate: false, }});writer.startAnimation();
當處于 連續(xù)繪制模式 時,調(diào)用這兩個api可以暫停繪制和恢復繪制
const writer = cnchar.draw(你好, { type: cnchar.draw.TYPE.ANIMATION});writer.pauseAnimation();writer.resumeAnimation();
該 api 用于開啟 單筆繪制模式
首先需要使用參數(shù) option.animation.autoAnimate = false
const writer = cnchar.draw(你好, { type: cnchar.draw.TYPE.ANIMATION, animation: { autoAnimate: false, }});writer.drawNextStroke(()=>{ // 當前筆畫繪制完成的回調(diào)});
該庫由 HanziWriter 驅(qū)動,目前僅支持在web環(huán)境下使用,如需微信小程序使用請參考 HanziWriter API
5.3 繁體、簡體、火星文互轉(zhuǎn): convert當引入 cnchar-trad 之后,cnchar 就具備了繁體、簡體、火星文互轉(zhuǎn)功能,使用 cnchar.convert 對象上的方法,你就可以使用這個功能
自從 v2.0.4 以后,cnchar 保留以下方法可供使用:
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();
當引入 cnchar-order 功能庫(版本 2.0.2 及以上)之后,cnchar 就支持了根據(jù)筆畫名稱序列推出原漢字的功能,使用方式如下:
cnchar.orderToWord(orderNames[,...args]);
orderNames 是筆畫名稱序列
args 是參數(shù)列表,可選值有 [match,matchorder,contain,start,array,simple], 使用 cnchar.type.orderToWord 可以查看可選值。 參數(shù)詳細使用方法請參見第六章 orderToWord 參數(shù)
orderNames 可以是空格分隔的筆畫名稱字符串或筆畫名稱數(shù)組,可用的筆畫名稱可以通過以下 api 查看
var dict = cnchar.orderToWord.orders; // dict 是一個包含所有筆畫數(shù)的詳細信息的json數(shù)據(jù)
筆畫詳細信息的如下,orderNames 只需要傳入筆畫名稱即可,也就是下面 json 數(shù)據(jù)的 key 值
{ 臥鉤: {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"} 點2: {shape: "?", letter: "d"} 豎: {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"}}
筆畫詳情
名稱 | 定義 | 形狀 |
橫折折撇 | a | ? |
豎彎 | b | ? |
橫折 | c | |
點2 | d | ? |
橫斜鉤 | o | ? |
橫 | j | 一 |
捺 | l | ? |
橫折鉤 | r | |
豎 | f | 丨 |
豎鉤 | g | 亅 |
點 | k | 丶 |
撇 | s | 丿 |
撇折 | n | |
豎折撇/豎折折 | x | ㄣ |
橫折折折鉤/橫撇彎鉤 | w | |
豎折折鉤 | z | ? |
提 | i | ? |
彎鉤 | t | ? |
斜鉤/臥鉤 | y | ? |
橫折折/橫折彎 | v | ? |
橫撇/橫鉤 | e | ? |
橫折提 | p | ? |
橫折折折 | q | ? |
豎提 | h | |
撇點 | m | |
豎彎鉤 | u | 乚 |
注:其中以下五對筆畫沒有進行區(qū)分,使用的是同樣的字母表示: 臥鉤 = 斜鉤、橫折彎 = 橫折折、橫折折折鉤 = 橫撇彎鉤、橫撇 = 橫鉤、豎折折 = 豎折撇
以下是一個例子:
cnchar.orderToWord([橫, 撇, 捺]);// 等價于 cnchar.orderToWord(橫 撇 捺);// 返回 "丈大"cnchar.orderToWord([橫, 撇, 捺], array);// 返回 ["丈","大"]cnchar.orderToWord([橫, 撇, 捺], start);// 返回 "丈大太*夯夸奪夼奩奄奈奮奔態(tài)奎耷套奢瓠鷯奪奮遼"cnchar.orderToWord([橫, 撇, 捺], start, simple);// 返回 "丈大太*夯夸奪夼奩奄奈奮奔態(tài)奎耷套奢瓠鷯"
如果輸入的筆畫不在 cnchar.orderToWord.orders 內(nèi),則該方法會打印一個錯誤提示哪些筆畫有誤,并返回一個空數(shù)組。
5.5 通過拼音查詢原漢字: spellToWordspellToWord 方法用于根據(jù)拼音查詢符合要求的漢字,用法如下:
cnchar.spellToWord(spell[,...args]);
例子:
cnchar.spellToWord(shàng); // 返回 上尚绱鞝cnchar.spellToWord(shàng, alltone); // 返回 上傷湯尚坰殤晌商绱觴賞墑熵裳傷湯殤鞝觴賞cnchar.spellToWord(shang4, alltone, trad); // 返回 傷湯殤鞝觴賞cnchar.spellToWord(lv2, simple); // 返回 驢閭櫚
注:
spell 表示拼音,可以使用音調(diào)字母或音調(diào)數(shù)標方式: 例:shàng 等價于 shang4
ü 可以使用 v 表示,例:lü 等價于 lv
5.6 通過筆畫數(shù)查詢原漢字: strokeToWordstrokeToWord 方法用于根據(jù)筆畫數(shù)查詢符合要求的漢字,用法如下:
cnchar.strokeToWord(strokeCount[,...args]);
例子:
cnchar.strokeToWord(25); // 返回 鬣馕囔戇攮纛饞躥顱籮蠻廳灣鑲鑰cnchar.strokeToWord(25, simple); // 返回 鬣馕囔戇攮纛cnchar.strokeToWord(1, array); // 返回 [一, 乙]
cnchar在2.2.0加入了成語功能,啟用該功能需要安裝 cnchar-idiom 功能庫,該庫可以獨立于cnchar主庫運行
使用方式如下:
cnchar.idiom(text:string, ...idiomArgs: Array<idiomArg>):Array<string>;
看一個具體例子
// 根據(jù)漢字查詢成語,末尾的空格可以省略cnchar.idiom([五, , 十, ]); // [五風十雨, 五光十色]// 根據(jù)筆畫數(shù)查詢成語,0表示匹配任意筆畫,末尾的0可以省略cnchar.idiom([4, 6, 2, 0], stroke); // ["不當人子", ... ]// 根據(jù)拼音查詢成語cnchar.idiom(shang, spell); // ["傷風敗化", "傷風敗俗", ...]// 帶音調(diào)cnchar.idiom(shang4, spell, tone); // ["上兵伐謀", "上不著天,下不著地", ... ]
使用cdn引用時,會在window對向上暴露 CncharIdiom 對象
5.8 歇后語功能cnchar在2.2.0加入了歇后語功能,啟用該功能需要安裝 cnchar-xhy 功能庫,該庫可以獨立于cnchar主庫運行
使用方式如下:
cnchar.xhy(text:string, ...xhyArgs: Array<xhyArg>):Array<string>;
看一個具體例子
// 精確查詢cnchar.xhy(大水沖了龍王廟); // [大水沖了龍王廟-自家人不識自家人, 大水沖了龍王廟-一家人不認一家人],// 模糊查詢cnchar.xhy(大水, fuzzy); // [江河里長大水-泥沙俱下, 江河發(fā)大水-后浪推前浪, ... ]// 只返回答案結(jié)果cnchar.xhy(大水, fuzzy, answer); // [泥沙俱下, 后浪推前浪, ... ]// 根據(jù)歇后語后一句查詢cnchar.xhy(上晃下?lián)u, fuzzy, answer, second); // [醉漢過鐵索橋, 扶著醉漢過破橋]
使用cdn引用時,會在window對向上暴露 CncharXHY 對象
5.9 偏旁部首功能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(你好呀); // "亻女口"http:// 返回數(shù)組cnchar.radical(你好呀, array); // ["亻", "女", "口"]// 傳入數(shù)組會默認返回數(shù)組cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"]
使用cdn引用時,會在window對向上暴露 CncharRadical 對象
5.10 漢字、拼音工具方法cnchar 將庫內(nèi)部使用的一些操作拼音和漢字的方法整理暴露出來,方便開發(fā)者便捷高效的操作拼音和漢字
5.10.1 查詢拼音詳細信息: spellInfospellInfo 方法用于查詢拼音的詳細信息,用法如下:
cnchar.spellInfo(spell);
例子:
cnchar.spellInfo(Shàng);/*// 返回值與含義如下{ spell: shang, // 無音調(diào)拼音 initial: sh, // 聲母 final: ang, // 韻母 tone: 4, // 音調(diào) index: 3 // 音調(diào)位置},*/
除此之外,spellInfo 上含有 initials 和 tones 兩個屬性,分別表示,所有可用的聲母和音調(diào):
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 的一聲使用 * 代替
transformTone 方法用于將有音調(diào)拼音轉(zhuǎn)換為無音調(diào)拼音,且可以獲取音調(diào)位置和聲調(diào)
使用方式如下:
cnchar.transformTone(spell: string, tone?: boolean, type?: low | up);/* 返回值{ spell: string; // 轉(zhuǎn)換后的拼音 tone: toneType; // 聲調(diào) index: number; // 音調(diào)位置 isTrans: boolean; // 是否是經(jīng)過轉(zhuǎn)換的比如 lv2 -> lǘ}*/
tone 為可選參數(shù),表示返回值spell是否需要帶上聲調(diào),默認為 false
type 為可選參數(shù),表示返回值spell設置大小寫,默認為 low
transformTone spell參數(shù) 支持使用 v 代替 ü,支持使用末尾帶數(shù)字表示聲調(diào),比如 lv 等價于 lü shang4 等價于 shàng
5.10.3 是否是漢字: isCnCharisCnChar 方法用于判斷一個字符是否是漢字
cnchar.isCnChar(word: string): boolean;
isPolyWord 方法用于判斷一個字符是否是漢字
cnchar.isPolyWord(word: string): boolean;
compareSpell 方法用于按照拼音比較拼音或漢字的大小,可用于通訊錄姓名拼音排序等場景
該方法支持按照拼音和聲調(diào)比較,如需排序可以參考 sortSpell 方法
cnchar.compareSpell(spell1: string, spell2: string, tone?: boolean);
tone參數(shù)表示是否需要按照音調(diào)比較,默認為false
該方法返回一個字符串,more, less, even 分別表示 spell1 大于、小于、等于 spell2
例
cnchar.compareSpell(ao, ai) // 返回 more 因為 o 排在 i 之后cnchar.compareSpell(奧, ai) // 返回 more
compareStroke 方法用于按照筆畫數(shù)比較漢字大小,可用于按照姓名首個漢字筆畫排序等場景,排序可以參考 sortStroke 方法
cnchar.compareStroke(stroke1: string, stroke2: string);
該方法支持輸入漢字或數(shù)字,漢字可以輸入多個
該方法返回一個字符串,more, less, even 分別表示 stroke1 大于、小于、等于 stroke2
例子:
cnchar.compareStroke(你, 好) // 返回 morecnchar.compareStroke(20, 好) // 返回 morecnchar.compareStroke(一個, 好) // 返回 less
sortSpell 方法用于按照拼音排序漢字或拼音,支持輸入數(shù)組或字符串,支持按照聲調(diào)排序、支持倒序
cnchar.sortSpell(spells:Array<string> | string, ...args?: Array<tone|desc>): Array<string> | string;
spells參數(shù)可以是數(shù)組或字符串
當為數(shù)組時,數(shù)組元素可以時漢字或拼音,返回的是數(shù)組
當為字符串時,字符串必須全部是漢字,返回的是字符串
該方法可選參數(shù)有兩個,tone 表示按照音調(diào)排序,desc 表示倒序,默認不區(qū)分聲調(diào)且升序。請看一些例子
cnchar.sortSpell([你, 好, 嗎]) // [好, 嗎, 你]cnchar.sortSpell(你好嗎) // 好嗎你cnchar.sortSpell(拼品頻愛, tone, desc) // 品頻拼愛
sortStroke 方法用于按照筆畫數(shù)排序漢字
cnchar.sortStroke(strokes:Array<string|number> | string, desc?: desc): Array<string> | string;
strokes參數(shù)可以是數(shù)組或字符串
當為數(shù)組時,數(shù)組元素可以時漢字或數(shù)字,返回的是數(shù)組
當為字符串時,字符串必須全部是漢字,返回的是字符串
該方法有一個可選參數(shù),desc 表示倒序,默認升序。請看一些例子
cnchar.sortStroke([一, 三, 二]) // [一, 二, 三]cnchar.sortStroke([一, 三, 2]) // [一, 2, 三],cnchar.sortStroke(一三二, desc) // 三二一
shapeSpell 將數(shù)字表示的聲調(diào)轉(zhuǎn)為拼音聲調(diào)
如 lv2 會被轉(zhuǎn)換成 lǘ,ta1 會被轉(zhuǎn)換成 tā, 方便用戶輸入
cnchar.shapeSpell(spell: string): string;
由于 cnchar 數(shù)據(jù)來源于網(wǎng)絡,雖然經(jīng)過了大量修改,但是還是難免會有錯漏
所以 cnchar 提供了修改默認數(shù)據(jù)的api,方便開發(fā)者修改與添加數(shù)據(jù)
5.11.1 setSpell設置拼音數(shù)據(jù)
cnchar.setSpell(word: string, spell: string): void;cnchar.setSpell(json: {[key: string]: string}): void;
設置多音字的默認讀音
cnchar.setSpellDefault(word: string, spell: string): void;cnchar.setSpellDefault(json: {[key: string]: string}): void;
設置漢字筆畫數(shù)
cnchar.setStrokeCount(word: string, count: number): void;cnchar.setStrokeCount(json: {[key: string]: number}): void;
設置多音詞的讀音, 依賴 cnchar-poly 庫
cnchar.setPolyPhrase(word: string, spell: string): void;cnchar.setPolyPhrase(json: {[key: string]: string}): void;
設置漢字筆順, 依賴 cnchar-order 庫
添加的筆順必須是字母,詳情對應關(guān)系參見 stroke-table
cnchar.setOrder(word: string, order: string): void;cnchar.setOrder(json: {[key: string]: string}): void;
設置漢字偏旁部首, 依賴 cnchar-radical 庫
cnchar.radical.setRadical(word: string, radical: string): void;cnchar.radical.setRadical(json: {[key: string]: string}): void;
添加歇后語, 依賴 cnchar-xhy 庫
cnchar.xhy.addXhy(args: Array<Array<string> | string>): void;cnchar.xhy.addXhy(xhyHead: string, xhyTail: string): void;
這個 api 的功能是顯式啟用 poly、order、trad 三個功能庫
cnchar.use(...libs);
這個啟用在非瀏覽器環(huán)境(比如 nodejs 等)中是必須的,使用如下:
// 請保證最先引入 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); // 參數(shù)順序無關(guān),三個參數(shù)可以任意選擇
在瀏覽器環(huán)境中則無需調(diào)用:
// 請保證最先引入 cnchar 基礎庫,其他幾個庫順序無所謂import cnchar from cnchar;import cnchar-poly;import cnchar-order;import cnchar-trad;
type 對象用戶獲取當前可用的 spell 、 stroke 、 orderToWord 、spellToWord、strokeToWord、idiom、 xhy、radical 參數(shù)類型:
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.12.3 .check該值是一個 布爾類型,用于控制是否開啟參數(shù)校驗,默認值為 true
參數(shù)校驗能夠?qū)?spell 和 stroke 傳入的參數(shù)進行檢查,在控制臺顯示 無效·,忽略和冗余的參數(shù)
cnchar.check = false; // 關(guān)閉參數(shù)校驗
獲取當前版本:
var version = cnchar.version; // string 類型
當前使用的功能庫列表,最多的情況為 ["order", "trad", "poly"]
var plugins = cnchar.plugins; // array 類型
參數(shù)調(diào)用如下,所有 arg 參數(shù)都是可選的
cnchar.spell(string,arg1,arg2,...);string.spell(arg1,arg2,...)
arg 參數(shù)信息如下:
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
array | 返回數(shù)組 | 否 | -- | -- |
first | 返回拼音首字母 | 否 | -- | -- |
up | 將結(jié)果全部大寫 | 否 | -- | -- |
low | 將結(jié)果全部小寫 | 否 | -- | 會被 up 參數(shù)覆蓋 |
poly | 使用候選多音字 | 否 | -- | -- |
tone | 啟用音調(diào) | 否 | -- | -- |
simple | 是否禁用繁體字的拼音功能 | 否 | cnchar-trad | 使用 cnchar-trad 之后,默認對繁體字拼音進行轉(zhuǎn)換,該參數(shù)用于禁用繁體字拼音 |
參數(shù)調(diào)用如下,所有 arg 參數(shù)都是可選的
cnchar.stroke(string,arg1,arg2,...);string.stroke(arg1,arg2,...);
arg 參數(shù)信息如下:
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
array | 返回數(shù)組 | 否 | -- | 使用 cnchar-order 且啟用 order 參數(shù)后該參數(shù)被忽略 |
order | 啟用筆畫順序 | 否 | cnchar-order | -- |
letter | 使用筆畫順序字母序列 | 是 | cnchar-order | 當啟用 order 后,該值是默認值 |
detail | 使用筆畫順序詳情作為返回值,每個漢字對應一個 json | 否 | cnchar-order | 優(yōu)先級小于 letter |
shape | 使用筆畫形狀作為返回值 | 否 | cnchar-order | 優(yōu)先級小于 detail |
name | 使用筆畫名稱作為返回值 | 否 | cnchar-order | 優(yōu)先級小于 shape |
count | 使用筆畫數(shù)作為返回值 | 否 | cnchar-poly | 優(yōu)先級小于 name |
simple | 是否禁用繁體字的筆畫功能 | 否 | cnchar-trad | 使用 cnchar-trad 之后,默認對繁體字啟用筆畫功能,該參數(shù)用于禁用繁體字筆畫功能 |
參數(shù)調(diào)用如下,所有 arg 參數(shù)都是可選的
cnchar.orderToWord(orders,arg1,arg2,...);
arg 參數(shù)信息如下:
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
match | 匹配含有筆序中所有筆畫的漢字 | 否 | -- | -- |
matchorder | 匹配含有筆序中所有筆畫的漢字前先后順序一致 | 否 | -- | -- |
contain | 匹配含有該筆序的漢字 | 否 | -- | -- |
start | 匹配所有以該筆序開頭的漢字 | 否 | -- | -- |
array | 返回符合條件的數(shù)組,默認返回的是字符串 | 否 | -- | -- |
simple | 禁用繁體字 | 否 | cnchar-trad | 該參數(shù)僅在引入了 cnchar-trad 后有效 |
關(guān)于匹配參數(shù),優(yōu)先級為 match > matchorder > contain > start > 默認
不含有匹配參數(shù)時表示使用全匹配,即漢字筆畫數(shù)與傳入的 orders 完全一致
6.4 spellToWord 參數(shù)參數(shù)調(diào)用如下,所有 arg 參數(shù)都是可選的
cnchar.spellToWord(spell,arg1,arg2,...);
spell 表示拼音,可以使用音調(diào)字母或音調(diào)數(shù)標方式: 例:shàng 等價于 shang4
ü 可以使用 v 表示,例:lü 等價于 lv
arg 參數(shù)信息如下:
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
simple | 僅匹配簡體字 | 否 | -- | -- |
trad | 僅匹配繁體字 | 否 | cnchar-trad | 該參數(shù)僅在引入了 cnchar-trad 后有效 |
poly | 僅匹配多音字 | 否 | -- | -- |
alltone | 匹配該拼音所有音調(diào)的漢字 | 否 | -- | 沒有音調(diào)的拼音表示輕聲 |
array | 返回符合條件的數(shù)組,默認返回的是字符串 | 否 | -- | -- |
注:simple與trad參數(shù)若是都不存在,則當引入cnchar-trad時會同時匹配繁簡體,沒有引入cnchar-trad時則只匹配簡體
6.5 strokeToWord 參數(shù)參數(shù)調(diào)用如下,count表示筆畫數(shù),所有 arg 參數(shù)都是可選的
cnchar.strokeToWord(count,arg1,arg2,...);
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
simple | 僅匹配簡體字 | 否 | -- | -- |
trad | 僅匹配繁體字 | 否 | cnchar-trad | 該參數(shù)僅在引入了 cnchar-trad 后有效 |
array | 返回符合條件的數(shù)組,默認返回的是字符串 | 否 | -- | -- |
注:simple與trad參數(shù)若是都不存在,則當引入cnchar-trad時會同時匹配繁簡體,沒有引入cnchar-trad時則只匹配簡體
6.6 idiom 參數(shù)參數(shù)調(diào)用如下,value表示查詢對象,可以試拼音漢字筆畫數(shù),所有 arg 參數(shù)都是可選的
cnchar.idiom(value,arg1,arg2,...);
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
char | 根據(jù)漢字查詢成語 | 是 | -- | 默認值無需調(diào)用 |
stroke | 根據(jù)筆畫數(shù)查詢成語 | 否 | -- | 優(yōu)先級高于char |
spell | 根據(jù)拼音查詢成語 | 否 | -- | 優(yōu)先級高于stroke |
tone | 啟用拼音音調(diào)查詢 | 否 | -- | 僅在spell模式下生效 |
注:優(yōu)先級 spell > stroke > char
6.7 xhy 參數(shù)參數(shù)調(diào)用如下,value表示歇后語查詢對象,可以是歇后語的第一句或第二句,所有 arg 參數(shù)都是可選的
cnchar.xhy(value,arg1,arg2,...);
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
fuzzy | 是否支持模糊查詢 | 否 | -- | 是否包含輸入的字符串 |
answer | 是否只輸出答案 | 否 | -- | 默認是輸出整句歇后語 |
second | 是否是根據(jù)歇后語后一句查詢 | 否 | -- | -- |
參數(shù)調(diào)用如下,value表示需要查詢偏旁的漢字,可以是字符串或數(shù)組
cnchar.radical(value,arg1,arg2,...);
參數(shù) | 作用 | 是否默認 | 依賴庫 | 備注 |
array | 是否返回數(shù)組 | 否 | -- | 當傳入為數(shù)組時默認返回數(shù)組 |
npm 方式
npm i cnchar
import cnchar from cnchar;// do something
script 標簽引用 方式
<script src="https://cdn.jsdelivr.net/gh/theajack/cnchar/dist/cnchar.latest.min.js"></script><script> // do something</script>
//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); // 返回 "驢閭櫚"http://strokeToWord 功能cnchar.strokeToWord(2); // 返回 "丁七乃乜九了二人亻兒入八冂幾凵刀刁力勹"
備注:
該庫用于準確識別多音詞,同樣支持 6.3.1 中的其他參數(shù)功能
長大了.spell(); // 返回 ZhangDaLe長大了.spell(array); // 返回 ["Zhang", "Da", "Le"]長大了.spell(poly); // 返回 (Zhang|Chang)(Da|Dai)(Le|Liao)
該庫用于查詢漢字筆畫順序、筆畫名稱等,返回值為 數(shù)組
一個.stroke(order); // 返回 ["j","slf"] 需要顯式使用 order 參數(shù) 默認返回筆畫數(shù)字母序列一個.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]
根據(jù)筆畫名稱序列推出原漢字
var orders = cnchar.orderToWord.orders; //查看支持的筆畫名稱cnchar.orderToWord([橫, 撇, 捺]);// 返回 "丈大"cnchar.orderToWord([橫, 撇, 捺], array);// 返回 ["丈","大"]cnchar.orderToWord([橫, 撇, 捺], start);// 返回 "丈大太*夯夸奪夼奩奄奈奮奔態(tài)奎耷套奢瓠鷯奪奮遼"cnchar.orderToWord([橫, 撇, 捺], start, simple);// 返回 "丈大太*夯夸奪夼奩奄奈奮奔態(tài)奎耷套奢瓠鷯"cnchar.orderToWord([橫, 撇, 捺], match);// 返回 "丈大仄兮友天太夫夭尺攵文木犬長叢仗仝叭..." // 省略后面的cnchar.orderToWord([橫, 撇, 捺], matchorder);// 返回 "丈大仄友天太夫夭尺攵文木犬仗叭史央夯失..." // 省略后面的cnchar.orderToWord([橫, 撇, 捺], contain);// 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢喬..." // 省略后面的
該庫用于支持繁體字火星文轉(zhuǎn)換及為拼音筆畫數(shù)等基本功能提供繁體字支持
6.9.4.1 convert 字體轉(zhuǎn)換一個人.convertSimpleToTrad(); // 返回 "壹個人" 等價于 cnchar.convert.simpleToTradcnchar.convert.simpleToTrad(一個人);一個人.convertSimpleToSpark(); // 返回 "①個亾" 等價于 cnchar.convert.simpleToSparkcnchar.convert.simpleToSpark(一個人);壹個人.convertTradToSimple(); // 返回 "一個人" 等價于 cnchar.convert.tradToSimplecnchar.convert.tradToSimple(壹個人);壹個人.convertTradToSpark(); // 返回 "①個亾" 等價于 cnchar.convert.tradToSparkcnchar.convert.tradToSpark(壹個人);①個亾.convertSparkToSimple(); // 返回 "一個人" 等價于 cnchar.convert.sparkToSimplecnchar.convert.sparkToSimple(①個亾);①個亾.convertSparkToTrad(); // 返回 "壹個人" 等價于 cnchar.convert.sparkToTradcnchar.convert.sparkToTrad(①個亾);
該庫增加了對于繁體字的拼音筆畫功能擴展,其他基礎用法與 基礎庫一致:
//spell 功能長大.spell(); // 返回 ZhangDa長大.spell(simple); // 返回 長Da // 禁用繁體字拼音功能//stroke 功能長大.stroke(array); // 返回 [8, 3]長大.stroke(array, simple); // 返回 [0, 3] // 禁用繁體字筆畫功能長大.stroke(order, shape); // 返回 [["?","?","?","?","?","?","?","?"],["?","?","?"]]長大.stroke(order, shape, simple); // 返回 [undefined, ["?","?","?"]]
該庫為cnchar擴展了成語功能
cnchar.idiom([五, , 十, ]) // [五風十雨, 五光十色]cnchar.idiom([4, 6, 2, 6], stroke) // [五光十色]cnchar.idiom(shang, spell) // [傷風敗化, 傷風敗俗, ... ]cnchar.idiom(shang4, spell, tone) // [傷風敗化, 傷風敗俗, ... ]
該庫為cnchar擴展了歇后語功能
cnchar.xhy(大水沖了龍王廟) // [大水沖了龍王廟-自家人不識自家人, 大水沖了龍王廟-一家人不認一家人]cnchar.xhy(大水, fuzzy) // [江河里長大水-泥沙俱下, 江河發(fā)大水-后浪推前浪, ... ]cnchar.xhy(大水, fuzzy, answer) // [泥沙俱下, 后浪推前浪, ... ]cnchar.xhy(上晃下?lián)u, fuzzy, answer, second) // [醉漢過鐵索橋, 扶著醉漢過破橋]
該庫為cnchar擴展了偏旁部首功能
cnchar.radical(你); // "亻",cnchar.radical(你好呀); // "亻女口"cnchar.radical(你好呀, array); // ["亻", "女", "口"]cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"]
cnchar提供了一些漢字工具方法,方便開發(fā)者更便捷高效地操作拼音和漢字
6.9.8.1 spellInfocnchar.spellInfo(shàng);// 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"}
cnchar.isCnChar(a) // falsecnchar.isCnChar(1) // falsecnchar.isCnChar(?) // falsecnchar.isCnChar(國) // truecnchar.isCnChar(國) // true
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}
cnchar.compareSpell(ao, ai) // morecnchar.compareSpell(ai, ai) // evencnchar.compareSpell(pín, pǐn, true) // lesscnchar.compareSpell(pin2, pǐn, true) // lesscnchar.compareSpell(頻, pǐn, true) // lesscnchar.compareSpell(品, 頻, true) // morecnchar.compareSpell(貧, 頻, true) // even
cnchar.compareStroke(你, 好) // morecnchar.compareStroke(你, 蘇) // evencnchar.compareStroke(好, 蘇) // lesscnchar.compareStroke(一個, 好) // lesscnchar.compareStroke(你, 14) // less
拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)
cnchar.sortSpell([你, 好, 嗎]) // [好, 嗎, 你]cnchar.sortSpell(你好嗎) // 好嗎你cnchar.sortSpell([拼, 品, 頻, 愛], tone) // [愛, 拼, 頻, 品]cnchar.sortSpell([拼, 品, pin2, ai], tone) // [ai, 拼, pin2, 品]cnchar.sortSpell([拼, 品, 頻, 愛], tone, desc) // [品, 頻, 拼, 愛]cnchar.sortSpell(拼品頻愛, tone, desc) // 品頻拼愛
cnchar.sortStroke([一, 三, 二]) // [一, 二, 三]cnchar.sortStroke(一三二) // 一二三cnchar.sortStroke([一, 三, 2]) // [一, 2, 三]cnchar.sortStroke([一, 三, 二], desc) // [三, 二, 一]
cnchar.isPolyWord(中) // truecnchar.isPolyWord(國) // false
cnchar.shapeSpell(lv2) // lǘcnchar.shapeSpell(shang4) // shàng
拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)
// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.setSpell(x, x);cnchar.setSpell(x, [x1, x2]); // 多個讀音cnchar.setSpell({ // 多個漢字 x: x, y: [y1, y2]});
拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)
// 用于設置或修改 cnchar 中多音字的默認讀音cnchar.setSpellDefault(長, zhǎng);cnchar.setSpellDefault({ // 多個漢字 長: zhǎng, 中: zhòng});
// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.setStrokeCount(大, 3);cnchar.setStrokeCount({ // 多個 大: 3, 子: 3});
依賴 cnchar-order
添加的筆順必須是字母,詳情對應關(guān)系參見 stroke-table
// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.setOrder(大, jsl);cnchar.setOrder({ // 多個 大: jsl, 子: egj});
拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)
依賴 cnchar-poly
// 用于添加cnchar中不包含的詞組 或修改 cnchar中有誤的詞組cnchar.setPolyPhrase(測試, cè shi4);cnchar.setPolyPhrase({ // 多個 測試: cè shì, 體驗: tǐ yàn});
依賴 cnchar-radical
// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.radical.setRadical(x, x);cnchar.radical.setRadical({ // 多個 x: x, y: y});
依賴 cnchar-xhy
cnchar.xhy.addXhy(歇后語第一句, 歇后語第二句);cnchar.xhy.addXhy([ // 多條 [歇后語第一句, 歇后語第二句], [歇后語第一句2, 歇后語第二句2],]);
使用MIT開源協(xié)議
六、源碼地址私信回復:漢字拼音筆畫js庫
或訪問一飛開源:https://code.exmay.com/
歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-83401.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖