更新记录

0.0.1(2025-02-23)

  • init

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.52,Android:4.4,iOS:9,HarmonyNext:不确定 × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × ×

lime-pinyin 汉字转拼音

全端通用的中文转拼音 UTS 库,轻量高效

安装

插件市场导入,引入页面后,(app)自定义基座再使用

代码演示

拼音

通过 options.type 参数设置,可以获得数组和字符串不同的返回格式,也可以通过 options.toneType 参数控制音调在拼音中的显示格式

import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 获取带音调拼音
pinyin('汉语拼音'); // 'hàn yǔ pīn yīn'
// 获取不带声调的拼音
pinyin('汉语拼音', { toneType: 'none' } as CompleteOptions); // 'han yu pin yin'
// 获取声调转换为数字后缀的拼音
pinyin('汉语拼音', { toneType: 'num' } as CompleteOptions); // 'han4 yu3 pin1 yin1'
// 获取数组形式带音调拼音
pinyin('汉语拼音', { type: 'array' } as CompleteOptions); // ["hàn", "yǔ", "pīn", "yīn"]
// 获取数组形式不带声调的拼音
pinyin('汉语拼音', { toneType: 'none', type: 'array' } as CompleteOptions); // ["han", "yu", "pin", "yin"]
// 获取数组形式声调转换为数字后缀的拼音
pinyin('汉语拼音', { toneType: 'num', type: 'array' } as CompleteOptions); // ["han4", "yu3", "pin1", "yin1"]

声母

设置 options.patterninitial 时,返回的结果将为拼音的声母。

import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 获取声母
pinyin('汉语拼音', { pattern: 'initial' } as CompleteOptions); // 'h y p y'
// 获取数组形式声母
pinyin('汉语拼音', { pattern: 'initial', type: 'array' } as CompleteOptions); // ["h", "y", "p", "y"]

韵母

设置 options.patternfinal 时,返回的结果将为拼音的声母。

import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 获取带音调韵母
pinyin('汉语拼音', { pattern: 'final' } as CompleteOptions); // 'àn ǔ īn īn'
// 获取不带音调韵母
pinyin('汉语拼音', { pattern: 'final', toneType: 'none' } as CompleteOptions); // 'an u in in'
// 获取音调为数字的韵母
pinyin('汉语拼音', { pattern: 'final', toneType: 'num' } as CompleteOptions); // 'an4 u3 in1 in1'
// 获取数组形式带音调韵母
pinyin('汉语拼音', { pattern: 'final', type: 'array' } as CompleteOptions); // ["àn", "ǔ", "īn", "īn"]
// 获取数组形式不带音调韵母
pinyin('汉语拼音', { pattern: 'final', toneType: 'none', type: 'array' } as CompleteOptions); // ["an", "u", "in", "in"]
// 获取数组形式音调为数字的韵母
pinyin('汉语拼音', { pattern: 'final', toneType: 'num', type: 'array' } as CompleteOptions); // ['an4', 'u3', 'in1', 'in1']

韵头(介音)/韵腹/韵尾

设置 options.patternfinalHead/finalBody/finalTail 时,返回的结果将为拼音的韵头/韵腹/韵尾。

 import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 返回韵头
pinyin('村庄', { pattern: 'finalHead', type: 'array' } as CompleteOptions); // [ '', 'u' ]

// 返回韵腹
pinyin('村庄', { pattern: 'finalBody', type: 'array' } as CompleteOptions); // [ 'ū', 'ā' ]

// 返回韵尾
pinyin('村庄', { pattern: 'finalTail', type: 'array' } as CompleteOptions); // [ 'n', 'ng' ]

音调

设置 options.patternnum 时,返回的结果将为拼音的音调对应的数字。

 import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 获取音调
pinyin('汉语拼音', { pattern: 'num' } as CompleteOptions); // '4 3 1 1'
// 获取数组形式音调
pinyin('汉语拼音', { pattern: 'num', type: 'array' } as CompleteOptions); // ["4", "3", "1", "1"]

首字母

设置 options.patternfirst 时,返回的结果将为拼音的音调对应的数字。

 import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 获取拼音首字母
pinyin('赵钱孙李额', { pattern: 'first' } as CompleteOptions); // 'z q s l é'
// 获取不带音调拼音首字母
pinyin('赵钱孙李额', { pattern: 'first', toneType: 'none' } as CompleteOptions); // 'z q s l e'
// 获取数组形式拼音首字母
pinyin('赵钱孙李额', { pattern: 'first', type: 'array' } as CompleteOptions); // ['z', 'q', 's', 'l', 'é']
// 获取数组形式不带音调拼音首字母
pinyin('赵钱孙李额', { pattern: 'first', toneType: 'none', type: 'array' } as CompleteOptions); // ['z', 'q', 's', 'l', 'e']

完整内容

设置 options.typeall 时,返回的结果将为拼音的全部内容的数组。

 import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

const result = pinyin('汉语拼音', { type: 'all' });

多音字

设置 options.multipletrue 时,可以获取多音字的所有拼音。

 import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 获取多音
pinyin('好', { multiple: true } as CompleteOptions); // 'hǎo hào'
// 获取数组形式多音
pinyin('好', { multiple: true, type: 'array' } as CompleteOptions); // ["hǎo", "hào"]
// text 不为单个字符时 multiple 不生效
pinyin('好学', { multiple: true } as CompleteOptions); // hào xué

姓氏模式

设置 options.surnamehead(只识别字符串开头的姓氏字符) 或者 all(识别字符串全部的姓氏字符) 可以开启姓氏模式,匹配到百家姓中的姓氏相关的字符将优先输出姓氏拼音。

 import { pinyin, type CompleteOptions } from '@/uni_modules/lime-pinyin'

// 不开启姓氏模式
pinyin('我叫曾乐乐'); // 'wǒ jiào céng lè lè'

// 开启 head 姓氏模式
pinyin('我叫曾乐乐', { surname: 'head' } as CompleteOptions); // 'wǒ jiào zēng lè lè'

// 开启 all 姓氏模式(会将“乐”也识别为乐毅的yuè姓氏)
pinyin('我叫曾乐乐', { surname: 'all' } as CompleteOptions); // 'wǒ jiào zēng yuè yuè'

自定义词汇

插件内置了一些高频常用词的词典,想要保证高准确率,需要应用更完备的词典,可以通过 addDict 添加词典。

可以使用pinyin-pro官方提供的词典,但是数据包比较大,不建议直接放在项目里加载。特别是uniappx app端。会直接崩溃。

npm install @pinyin-pro/data
yarn add @pinyin-pro/data
pnpm add @pinyin-pro/data
 import { addDict } from '@/uni_modules/lime-pinyin'

 // 非app
 import CharsDict from '@pinyin-pro/data/chars'; // 僻字字典
 import CompleteDict from '@pinyin-pro/data/complete'; // 中文分词库词语拼音合集
 import ModernDict from '@pinyin-pro/data/modern'; // 《现代汉语词典(第 7 版)》词语拼音合集
 addDict(json)

 // uniappx app 把词汇复制到static目录,或放在服务器下载到本地再加载
 const manager = uni.getFileSystemManager();
 manager.readFile({
    filePath: 'static/modern.json',
    encoding: 'utf-8',
    success: (res) => {
        const obj = JSON.parseObject(res.data as string)
        if(obj == null) return
        addDict(obj)
    },
 } as ReadFileOptions);

感谢

pinyin-pro

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问