久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>知識>js漢字拼音轉(zhuǎn)換(開源功能全面多端支持的漢字拼音筆畫)

js漢字拼音轉(zhuǎn)換(開源功能全面多端支持的漢字拼音筆畫)

發(fā)布時間:2024-01-23閱讀(14)

導讀一、開源項目簡介cnchar是一款功能全面、多端支持的漢字拼音筆畫js庫。感謝同學們對于cnchar的支持,由于cnchar詞庫來源于網(wǎng)絡,雖然經(jīng)過了本人的....一、開源項目簡介

cnchar 是一款功能全面、多端支持的漢字拼音筆畫 js 庫。

感謝同學們對于 cnchar 的支持,由于 cnchar 詞庫來源于網(wǎng)絡,雖然經(jīng)過了本人的修改和擴充,但是還是難免有錯誤與缺漏之處,希望大家可以將使用中發(fā)現(xiàn)的錯誤與缺漏之處 反饋。

cnchar-draw 庫功能基于 hanzi-writer, 特此表示感謝!

二、界面展示

應用例子

漢字打字游戲

js漢字拼音轉(zhuǎn)換(開源功能全面多端支持的漢字拼音筆畫)(1)

打字彈鋼琴

js漢字拼音轉(zhuǎn)換(開源功能全面多端支持的漢字拼音筆畫)(2)

cnchar官網(wǎng)

js漢字拼音轉(zhuǎn)換(開源功能全面多端支持的漢字拼音筆畫)(3)

三、功能概述

功能全面

  • 拼音/筆畫數(shù)
  • 多音字詞
  • 繁體字/火星文
  • 漢字筆順/偏旁部首
  • 多種模式繪制漢字
  • 漢字推算/拼音排序
  • ...

多端支持

  • 瀏覽器
  • nodejs
  • 小程序/小游戲
  • ReactNative/Weex/Uniapp/Electron
  • webpack
  • typescript開發(fā)
  • ...

按需取用

  • 支持自定義數(shù)據(jù)
  • 支持IE9
  • 功能分包
  • 體積小巧
  • 簡單易用
  • npm cdn
  • ...
四、技術(shù)選型

關(guān)于該文檔

由于文檔較長,做一下簡介,請按照需要閱讀

  • 第零章可以幫助開發(fā)者快速接入cnchar
  • 第一、二章介紹了cnchar的功能及其功能庫
  • 第三章介紹了cnchar的安裝和使用
  • 第四章介紹了各種不同環(huán)境下cnchar的使用差異
  • 第五章詳細介紹了cnchar及其功能庫的API使用
  • 第六章列舉了各個方法的參數(shù)和大量的cnchar使用實例
  • 第七章介紹了一些cnchar使用案例
0.快速使用

使用 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.功能
  1. 獲取 漢字拼音 ,支持首字母、大小寫、數(shù)組分割、備選 多音字 等功能
  2. 支持 多音詞
  3. 支持 拼音音調(diào)
  4. 獲取漢字 筆畫數(shù) 、支持數(shù)組分割
  5. 獲取漢字 筆畫順序 、筆畫詳細名稱
  6. 支持可視化 繪制漢字筆畫 、多種繪制模式可選
  7. 支持 簡體字繁體字火星文 互轉(zhuǎn)
  8. 支持 查找 某拼音的所有 漢字 ,繁體字,多音字
  9. 支持 查找 指定筆畫數(shù)的所有 漢字 ,繁體字
  10. 支持 根據(jù)筆畫順序查詢 漢字
  11. 支持 查詢拼音的信息,包含聲母、韻母、音調(diào)、音調(diào)位置的等
  12. 支持 繁體字 拼音、筆畫數(shù)及以上所有功能,實現(xiàn)和簡體字一樣的功能
  13. 支持 成語 查詢功能,可以按照漢字、拼音(聲調(diào))、筆畫數(shù)查詢成語
  14. 支持 歇后語 查詢功能,支持模糊查詢
  15. 支持 偏旁部首 查詢功能
  16. 提供漢字工具方法,方便開發(fā)者更便捷高效地 操作拼音和漢字
  17. 體積小,min 版本僅 46 kb,zip 版本 34 kb (含有大量漢字拼音字典)
  18. 多端可用,可用于 瀏覽器、nodejs、小程序/小游戲、ReactNative/Weex/Uniapp/Electron、webpack...,支持所有 js 能運行的環(huán)境
  19. typescript,主庫及所有插件庫均使用typescript開發(fā)
  20. 豐富的配置,按功能拆分成7個庫按需取用
  21. 支持自定義拼音筆畫等數(shù)據(jù),使用更靈活
  22. 支持 IE9及以上版本
2.概覽

考慮到不同的需求,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

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 cdn 引入

<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>

4.使用4.1 webpack瀏覽器環(huán)境(有window對象)

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>

5.API

類型聲明: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é)果如下:

js漢字拼音轉(zhuǎn)換(開源功能全面多端支持的漢字拼音筆畫)(4)

該庫支持脫離cnchar 獨立使用

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

使用cdn引用時,會在window對向上暴露 CncharDraw 對象

5.2.2 參數(shù)

draw 的參數(shù)比較繁多,首先需要理解的是,draw 分為四種繪制模式:

  1. normal: 常規(guī)繪制
  2. animation: 帶有繪制動畫,支持連續(xù)繪制、同時繪制、循環(huán)繪制
  3. stroke: 按漢字筆順單步繪制
  4. test: 測試模式,用戶可以在容器內(nèi)繪制漢字,cnchar-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})=>{} }};

5.2.3 繪制控制api

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();

5.2.3.2 pauseAnimation & resumeAnimation

當處于 連續(xù)繪制模式 時,調(diào)用這兩個api可以暫停繪制和恢復繪制

const writer = cnchar.draw(你好, { type: cnchar.draw.TYPE.ANIMATION});writer.pauseAnimation();writer.resumeAnimation();

5.2.3.3 drawNextStroke

該 api 用于開啟 單筆繪制模式

首先需要使用參數(shù) option.animation.autoAnimate = false

const writer = cnchar.draw(你好, { type: cnchar.draw.TYPE.ANIMATION, animation: { autoAnimate: false, }});writer.drawNextStroke(()=>{ // 當前筆畫繪制完成的回調(diào)});

5.2.4 微信小程序中使用

該庫由 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();

5.4 筆畫序列推出原漢字: orderToWord

當引入 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 通過拼音查詢原漢字: spellToWord

spellToWord 方法用于根據(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ù)查詢原漢字: strokeToWord

strokeToWord 方法用于根據(jù)筆畫數(shù)查詢符合要求的漢字,用法如下:

cnchar.strokeToWord(strokeCount[,...args]);

例子:

cnchar.strokeToWord(25); // 返回 鬣馕囔戇攮纛饞躥顱籮蠻廳灣鑲鑰cnchar.strokeToWord(25, simple); // 返回 鬣馕囔戇攮纛cnchar.strokeToWord(1, array); // 返回 [一, 乙]

5.7 成語功能

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 查詢拼音詳細信息: spellInfo

spellInfo 方法用于查詢拼音的詳細信息,用法如下:

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 的一聲使用 * 代替

5.10.2 拼音音調(diào)操作: transformTone

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 是否是漢字: isCnChar

isCnChar 方法用于判斷一個字符是否是漢字

cnchar.isCnChar(word: string): boolean;

5.10.4 是否是多音字: isPolyWord

isPolyWord 方法用于判斷一個字符是否是漢字

cnchar.isPolyWord(word: string): boolean;

5.10.5 比較拼音(漢字)大小: compareSpell

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

5.10.6 比較漢字筆畫數(shù)大小: compareStroke

compareStroke 方法用于按照筆畫數(shù)比較漢字大小,可用于按照姓名首個漢字筆畫排序等場景,排序可以參考 sortStroke 方法

cnchar.compareStroke(stroke1: string, stroke2: string);

該方法支持輸入漢字或數(shù)字,漢字可以輸入多個

該方法返回一個字符串,more, less, even 分別表示 stroke1 大于、小于、等于 stroke2

例子:

cnchar.compareStroke(你, 好) // 返回 morecnchar.compareStroke(20, 好) // 返回 morecnchar.compareStroke(一個, 好) // 返回 less

5.10.7 根據(jù)拼音排序: sortSpell

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) // 品頻拼愛

5.10.8 根據(jù)筆畫數(shù)排序: sortStroke

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) // 三二一

5.10.9 將數(shù)字表示的聲調(diào)轉(zhuǎn)為拼音聲調(diào): shapeSpell

shapeSpell 將數(shù)字表示的聲調(diào)轉(zhuǎn)為拼音聲調(diào)

如 lv2 會被轉(zhuǎn)換成 lǘ,ta1 會被轉(zhuǎn)換成 tā, 方便用戶輸入

cnchar.shapeSpell(spell: string): string;

5.11 自定義數(shù)據(jù)

由于 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;

5.11.2 setSpellDefault

設置多音字的默認讀音

cnchar.setSpellDefault(word: string, spell: string): void;cnchar.setSpellDefault(json: {[key: string]: string}): void;

5.11.3 setStrokeCount

設置漢字筆畫數(shù)

cnchar.setStrokeCount(word: string, count: number): void;cnchar.setStrokeCount(json: {[key: string]: number}): void;

5.11.4 setPolyPhrase

設置多音詞的讀音, 依賴 cnchar-poly 庫

cnchar.setPolyPhrase(word: string, spell: string): void;cnchar.setPolyPhrase(json: {[key: string]: string}): void;

5.11.5 setOrder

設置漢字筆順, 依賴 cnchar-order 庫

添加的筆順必須是字母,詳情對應關(guān)系參見 stroke-table

cnchar.setOrder(word: string, order: string): void;cnchar.setOrder(json: {[key: string]: string}): void;

5.11.6 setRadical

設置漢字偏旁部首, 依賴 cnchar-radical 庫

cnchar.radical.setRadical(word: string, radical: string): void;cnchar.radical.setRadical(json: {[key: string]: string}): void;

5.11.7 addXhy

添加歇后語, 依賴 cnchar-xhy 庫

cnchar.xhy.addXhy(args: Array<Array<string> | string>): void;cnchar.xhy.addXhy(xhyHead: string, xhyTail: string): void;

5.12 其他 api5.12.1 .use()

這個 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;

5.12.2 .type

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ù)校驗

5.12.4 .version

獲取當前版本:

var version = cnchar.version; // string 類型

5.12.5 .plugins

當前使用的功能庫列表,最多的情況為 ["order", "trad", "poly"]

var plugins = cnchar.plugins; // array 類型

6.參數(shù)介紹6.1 spell 參數(shù)

參數(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ù)用于禁用繁體字拼音

6.2 stroke 參數(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ù)用于禁用繁體字筆畫功能

6.3 orderToWord 參數(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ù)歇后語后一句查詢

--

--

6.8 radical 參數(shù)

參數(shù)調(diào)用如下,value表示需要查詢偏旁的漢字,可以是字符串或數(shù)組

cnchar.radical(value,arg1,arg2,...);

參數(shù)

作用

是否默認

依賴庫

備注

array

是否返回數(shù)組

--

當傳入為數(shù)組時默認返回數(shù)組

6.9 使用實例大全:6.9.0 安裝使用

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>

6.9.1 cnchar 基礎庫功能

//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); // 返回 "丁七乃乜九了二人亻兒入八冂幾凵刀刁力勹"

備注:

  1. string.spell(...arg)方法等價于 cnchar.spell(string,...args)
  2. string.stroke(...arg)方法等價于 cnchar.stroke(string,...args)
  3. spell 方法 非中文字符會返回原字符
  4. stroke 方法 非中文字符會筆畫數(shù)會計為 0
  5. stroke 方法 order 模式 非中文字符會返回 undefined
6.9.2 cnchar-poly 庫功能

該庫用于準確識別多音詞,同樣支持 6.3.1 中的其他參數(shù)功能

長大了.spell(); // 返回 ZhangDaLe長大了.spell(array); // 返回 ["Zhang", "Da", "Le"]長大了.spell(poly); // 返回 (Zhang|Chang)(Da|Dai)(Le|Liao)

6.9.3 cnchar-order 庫功能

該庫用于查詢漢字筆畫順序、筆畫名稱等,返回值為 數(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);// 返回 "丈大天太夫夭尺攵文犬仗叭史央夯失疋矢喬..." // 省略后面的

6.9.4 cnchar-trad 庫功能

該庫用于支持繁體字火星文轉(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(①個亾);

6.9.4.2 spell 和 stroke 方法

該庫增加了對于繁體字的拼音筆畫功能擴展,其他基礎用法與 基礎庫一致:

//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擴展了成語功能

cnchar.idiom([五, , 十, ]) // [五風十雨, 五光十色]cnchar.idiom([4, 6, 2, 6], stroke) // [五光十色]cnchar.idiom(shang, spell) // [傷風敗化, 傷風敗俗, ... ]cnchar.idiom(shang4, spell, tone) // [傷風敗化, 傷風敗俗, ... ]

6.9.6 cnchar-xhy 庫功能

該庫為cnchar擴展了歇后語功能

cnchar.xhy(大水沖了龍王廟) // [大水沖了龍王廟-自家人不識自家人, 大水沖了龍王廟-一家人不認一家人]cnchar.xhy(大水, fuzzy) // [江河里長大水-泥沙俱下, 江河發(fā)大水-后浪推前浪, ... ]cnchar.xhy(大水, fuzzy, answer) // [泥沙俱下, 后浪推前浪, ... ]cnchar.xhy(上晃下?lián)u, fuzzy, answer, second) // [醉漢過鐵索橋, 扶著醉漢過破橋]

6.9.7 cnchar-radical 庫功能

該庫為cnchar擴展了偏旁部首功能

cnchar.radical(你); // "亻",cnchar.radical(你好呀); // "亻女口"cnchar.radical(你好呀, array); // ["亻", "女", "口"]cnchar.radical(["你", "好", "呀"]); // ["亻", "女", "口"]

6.9.8 工具方法

cnchar提供了一些漢字工具方法,方便開發(fā)者更便捷高效地操作拼音和漢字

6.9.8.1 spellInfo

cnchar.spellInfo(shàng);// 返回 {spell: "shang", tone: 4, index: 3, initial: "sh", final: "ang"}

6.9.8.2 isCnChar

cnchar.isCnChar(a) // falsecnchar.isCnChar(1) // falsecnchar.isCnChar(?) // falsecnchar.isCnChar(國) // truecnchar.isCnChar(國) // true

6.9.8.3 transformTone

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

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

6.9.8.5 compareStroke

cnchar.compareStroke(你, 好) // morecnchar.compareStroke(你, 蘇) // evencnchar.compareStroke(好, 蘇) // lesscnchar.compareStroke(一個, 好) // lesscnchar.compareStroke(你, 14) // less

6.9.8.6 sortSpell

拼音支持聲調(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) // 品頻拼愛

6.9.8.7 sortStroke

cnchar.sortStroke([一, 三, 二]) // [一, 二, 三]cnchar.sortStroke(一三二) // 一二三cnchar.sortStroke([一, 三, 2]) // [一, 2, 三]cnchar.sortStroke([一, 三, 二], desc) // [三, 二, 一]

6.9.8.8 isPolyWord

cnchar.isPolyWord(中) // truecnchar.isPolyWord(國) // false

6.9.8.9 shapeSpell

cnchar.shapeSpell(lv2) // lǘcnchar.shapeSpell(shang4) // shàng

6.9.8.10 setSpell

拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)

// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.setSpell(x, x);cnchar.setSpell(x, [x1, x2]); // 多個讀音cnchar.setSpell({ // 多個漢字 x: x, y: [y1, y2]});

6.9.8.11 setSpellDefault

拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)

// 用于設置或修改 cnchar 中多音字的默認讀音cnchar.setSpellDefault(長, zhǎng);cnchar.setSpellDefault({ // 多個漢字 長: zhǎng, 中: zhòng});

6.9.8.12 setStrokeCount

// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.setStrokeCount(大, 3);cnchar.setStrokeCount({ // 多個 大: 3, 子: 3});

6.9.8.13 setOrder

依賴 cnchar-order

添加的筆順必須是字母,詳情對應關(guān)系參見 stroke-table

// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.setOrder(大, jsl);cnchar.setOrder({ // 多個 大: jsl, 子: egj});

6.9.8.14 setPolyPhrase

拼音支持聲調(diào)數(shù)字模式(lv2=>lǘ)

依賴 cnchar-poly

// 用于添加cnchar中不包含的詞組 或修改 cnchar中有誤的詞組cnchar.setPolyPhrase(測試, cè shi4);cnchar.setPolyPhrase({ // 多個 測試: cè shì, 體驗: tǐ yàn});

6.9.8.15 setRadical

依賴 cnchar-radical

// 用于添加cnchar中不包含的漢字 或修改 cnchar中有誤的漢字cnchar.radical.setRadical(x, x);cnchar.radical.setRadical({ // 多個 x: x, y: y});

6.9.8.16 addXhy

依賴 cnchar-xhy

cnchar.xhy.addXhy(歇后語第一句, 歇后語第二句);cnchar.xhy.addXhy([ // 多條 [歇后語第一句, 歇后語第二句], [歇后語第一句2, 歇后語第二句2],]);

五、開源協(xié)議

使用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地圖