polyphonic v3.15.0+
使用 polyphonic api 来获取多音字的全部读音。
TIP
大多数情况下你只需要使用 pinyin api,它会自动识别文本中多音字的正确读音。polyphonic 是用来获取每个字的所有读音的而不是多音字在句子中的正确读音。
示例
常规使用
使用 type 属性控制返回值的格式:
js
import { polyphonic } from 'pinyin-pro';
const resultString = polyphonic('好好学习'); // ['hǎo hào', 'hǎo hào', 'xué', 'xí']
const resultArray = polyphonic('好好学习', { type: 'array' }); // [['hǎo', 'hào'], ['hǎo', 'hào'], ['xué'], ['xí']]
const resultAll = polyphonic('好好学习', { type: 'all' });
/*
[
[
{
final: 'ǎo',
finalBody: 'ǎ',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 3,
origin: '好',
pinyin: 'hǎo',
},
{
final: 'ào',
finalBody: 'à',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 4,
origin: '好',
pinyin: 'hào',
},
],
[
{
final: 'ǎo',
finalBody: 'ǎ',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 3,
origin: '好',
pinyin: 'hǎo',
},
{
final: 'ào',
finalBody: 'à',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 4,
origin: '好',
pinyin: 'hào',
},
],
[
{
final: 'üé',
finalBody: 'é',
finalHead: 'ü',
finalTail: '',
first: 'x',
initial: 'x',
isZh: true,
num: 2,
origin: '学',
pinyin: 'xué',
},
],
[
{
final: 'í',
finalBody: 'í',
finalHead: '',
finalTail: '',
first: 'x',
initial: 'x',
isZh: true,
num: 2,
origin: '习',
pinyin: 'xí',
},
],
];
*/import { polyphonic } from 'pinyin-pro';
const resultString = polyphonic('好好学习'); // ['hǎo hào', 'hǎo hào', 'xué', 'xí']
const resultArray = polyphonic('好好学习', { type: 'array' }); // [['hǎo', 'hào'], ['hǎo', 'hào'], ['xué'], ['xí']]
const resultAll = polyphonic('好好学习', { type: 'all' });
/*
[
[
{
final: 'ǎo',
finalBody: 'ǎ',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 3,
origin: '好',
pinyin: 'hǎo',
},
{
final: 'ào',
finalBody: 'à',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 4,
origin: '好',
pinyin: 'hào',
},
],
[
{
final: 'ǎo',
finalBody: 'ǎ',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 3,
origin: '好',
pinyin: 'hǎo',
},
{
final: 'ào',
finalBody: 'à',
finalHead: '',
finalTail: 'o',
first: 'h',
initial: 'h',
isZh: true,
num: 4,
origin: '好',
pinyin: 'hào',
},
],
[
{
final: 'üé',
finalBody: 'é',
finalHead: 'ü',
finalTail: '',
first: 'x',
initial: 'x',
isZh: true,
num: 2,
origin: '学',
pinyin: 'xué',
},
],
[
{
final: 'í',
finalBody: 'í',
finalHead: '',
finalTail: '',
first: 'x',
initial: 'x',
isZh: true,
num: 2,
origin: '习',
pinyin: 'xí',
},
],
];
*/不带音调
使用 toneType 属性控制音调的展示形式:
js
import { polyphonic } from 'pinyin-pro';
const resultNone = polyphonic('好好学习', { toneType: 'none' }); // ['hao', 'hao', 'xue', 'xi']
const resultNum = polyphonic('好好学习', { toneType: 'num' }); // ['hao3 hao4', 'hao3 hao4', 'xue2', 'xi2']import { polyphonic } from 'pinyin-pro';
const resultNone = polyphonic('好好学习', { toneType: 'none' }); // ['hao', 'hao', 'xue', 'xi']
const resultNum = polyphonic('好好学习', { toneType: 'num' }); // ['hao3 hao4', 'hao3 hao4', 'xue2', 'xi2']语法及参数
polyphonic 的参数大部分和 pinyin 是相同的。
语法
js
import { polyphonic } from 'pinyin-pro';
interface BasicOptions {
type: 'string' | 'array' | 'all';
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first' | 'finalHead' | 'finalBody' | 'finalTail';
nonZh?: 'spaced' | 'consecutive' | 'removed';
v?: boolean;
}
interface AllData {
origin: string;
pinyin: string;
initial: string;
final: string;
num: number;
first: string;
finalHead: string;
finalBody: string;
finalTail: string;
isZh: boolean;
}
// 返回转换后的信息
function polyphonic(text: string, options?: BasicOptions): string[] | string[][] | AllData[][]import { polyphonic } from 'pinyin-pro';
interface BasicOptions {
type: 'string' | 'array' | 'all';
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first' | 'finalHead' | 'finalBody' | 'finalTail';
nonZh?: 'spaced' | 'consecutive' | 'removed';
v?: boolean;
}
interface AllData {
origin: string;
pinyin: string;
initial: string;
final: string;
num: number;
first: string;
finalHead: string;
finalBody: string;
finalTail: string;
isZh: boolean;
}
// 返回转换后的信息
function polyphonic(text: string, options?: BasicOptions): string[] | string[][] | AllData[][]参数
| 属性 | 类型 | 描述 | 可选值 | 说明 | 默认值 |
|---|---|---|---|---|---|
| type | string | 返回的格式 | string | string 数组 | string |
| array | string 二维数组 | ||||
| all | AllData 类型二维数组 | ||||
| toneType | string | 音调展示的形式 | symbol | 正常拼音音调 | symbol |
| none | 不展示 | ||||
| num | 跟在拼音后以数字展示 | ||||
| pattern | string | 展示的内容 | pinyin | 拼音全拼 | pinyin |
| initial | 声母 | ||||
| final | 韵母 | ||||
| num | 音调对应数字 | ||||
| first | 首字母 | ||||
| finalHead | 韵头 | ||||
| finalBody | 韵腹 | ||||
| finalTail | 韵尾 | ||||
| nonZh | string | 非中文字符处理 | spaced | 空格间隔开 | spaced |
| consecutive | 连续 | ||||
| removed | 从返回值中移除 | ||||
| v | boolean | 是否使用v替换返回值中的ü | false | 不替换 | false |
| true | 替换 |