欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js漢字轉(zhuǎn)拼音pinyin-pro的具體使用

 更新時間:2025年09月11日 10:20:13   作者:卿·靜  
pinyin-pro是一個功能強(qiáng)大的漢字拼音轉(zhuǎn)換工具庫,本文就來詳細(xì)的介紹一下Node.js漢字轉(zhuǎn)拼音pinyin-pro的具體使用,感興趣的可以了解一下

pinyin-pro 工具庫簡介

  • 核心功能:漢字轉(zhuǎn)拼音、多音字處理、音調(diào)控制、格式定制等
  • 性能特點:高效、輕量級、支持多種拼音風(fēng)格
  • 應(yīng)用場景:搜索優(yōu)化、數(shù)據(jù)排序、中文輸入法等

環(huán)境準(zhǔn)備與安裝

  • Node.js 
  • npm 或 yarn 安裝 pinyin-pro
npm install pinyin-pro

基礎(chǔ)使用示例

以下代碼示例展示如何通過 pinyin-pro 庫實現(xiàn)多種拼音轉(zhuǎn)換功能:

const { pinyin } = require("pinyin-pro");

// 獲取帶音調(diào)拼音
console.log(pinyin("你好世界"));  //nǐ hǎo shì jiè

// 獲取不帶音調(diào)拼音(toneType默認(rèn)為symbol)
console.log(pinyin("你好世界", { toneType: "none" }));  //ni hao shi jie

// 拼音轉(zhuǎn)為數(shù)字后綴
console.log(pinyin("你好世界", { toneType: "num" }));  //ni3 hao3 shi4 jie4

// 獲取拼音數(shù)組(type默認(rèn)為string)
console.log(pinyin("你好世界", { type: "array" }));  //[ 'nǐ', 'hǎo', 'shì', 'jiè' ]  

// 獲取不帶音調(diào)拼音數(shù)組
console.log(pinyin("你好世界", 
  { 
    toneType: "none", 
    type: "array" 
  }
));       //[ 'ni', 'hao', 'shi', 'jie' ] 

// 獲取數(shù)字后綴拼音數(shù)組
console.log(pinyin("你好世界", { 
  toneType: "num", 
  type: "array" 
}));     //[ 'ni3', 'hao3', 'shi4', 'jie4' ]

參數(shù)說明

  • toneType

    • "symbol": 默認(rèn)值,輸出帶聲調(diào)符號的拼音(如 nǐ hǎo shì jiè
    • "none": 輸出無聲調(diào)拼音(如 ni hao shi jie
    • "num": 輸出數(shù)字后綴形式(如 ni3 hao3 shi4 jie4
  • type

    • "string": 默認(rèn)值,返回拼接后的字符串
    • "array": 返回分段拼音數(shù)組(如 ["nǐ", "hǎo", "shì", "jiè"]
    • "all": 返回拼音完整內(nèi)容

聲母與韻母

// 獲取聲母
console.log(pinyin("你好世界", { pattern: "initial" }));
//輸出:n h sh j

// 獲取韻母
console.log(pinyin("你好世界", { pattern: "final" }));
//輸出:ǐ ǎo ì iè

// 獲取韻頭
console.log(pinyin("光瓜", { pattern: "finalHead", type: "array" }));
//輸出:[ 'u', 'u' ]

// 獲取韻腹
console.log(pinyin("關(guān)刀", { pattern: "finalBody", type: "array" }));
//輸出:[ 'ā', 'ā' ]

// 獲取韻尾
console.log(pinyin("大關(guān)刀", { pattern: "finalTail", type: "array" }));
//輸出:[ '', 'n', 'o' ]

// 獲取音調(diào)
console.log(pinyin("漢語拼音", { pattern: "num", type: "array" }));
//輸出:[ '4', '3', '1', '1' ]

// 獲取拼音首字母
console.log(pinyin("漢語拼音", { pattern: "first", type: "array" }));
//輸出:[ 'h', 'y', 'p', 'y' ]

功能說明

  • 聲母:提取每個漢字拼音的起始輔音部分。
  • 韻母:提取每個漢字拼音的元音及后續(xù)部分。
  • 韻頭、韻腹、韻尾:分別拆分韻母的結(jié)構(gòu),適用于需要分析拼音細(xì)節(jié)的場景。
  • 音調(diào):以數(shù)字形式返回拼音的聲調(diào)(如 4 表示第四聲)。
  • 拼音首字母:返回每個漢字拼音的首字母(大寫形式)。

通過調(diào)整 patterntype 參數(shù),可以靈活控制輸出格式(字符串或數(shù)組)。

完整拼音

// 獲取拼音完整內(nèi)容
console.log(pinyin("漢語拼音", { type: "all" }));

輸出結(jié)果:

[
  {
    origin: '你',
    pinyin: 'nǐ',
    initial: 'n',
    final: 'ǐ',
    first: 'n',
    finalHead: '',
    finalBody: 'ǐ',
    finalTail: '',
    num: 3,
    isZh: true,
    polyphonic: [ 'nǐ' ],
    inZhRange: true,
    result: 'nǐ'
  },
  {
    origin: '好',
    pinyin: 'hǎo',
    initial: 'h',
    final: 'ǎo',
    first: 'h',
    finalHead: '',
    finalBody: 'ǎ',
    finalTail: 'o',
    num: 3,
    isZh: true,
    polyphonic: [ 'hǎo', 'hào' ],
    inZhRange: true,
    result: 'hǎo'
  }
]

結(jié)果參數(shù)說明(以“你”為例):

  • origin: 漢字本體為“你”
  • pinyin: 標(biāo)準(zhǔn)拼音為“nǐ”
  • initial: 聲母為“n”
  • final: 韻母為“ǐ”(單韻母結(jié)構(gòu))
  • 音節(jié)拆分:
    • first: 首字母“n”
    • finalHead: 韻頭為空
    • finalBody: 韻腹為“ǐ”
    • finalTail: 韻尾為空
  • 其他屬性:
    • num: 音調(diào)為第三聲
    • isZh: 屬于中文字符
    • polyphonic: 無雙音,僅“nǐ”一個讀音
    • inZhRange: 在漢字Unicode范圍內(nèi)
    • result: 最終輸出拼音“nǐ”

姓名模式

console.log(pinyin("曾樂樂"));
//輸出:céng lè lè

// 姓氏模式
console.log(pinyin("曾樂樂", { surname: "head" }));
//輸出:zēng lè lè

// 開啟 all 姓氏模式(會將“樂”也識別為樂毅的yuè姓氏)
console.log(pinyin("曾樂樂", { surname: "all" }));
//輸出:zēng yuè yuè

代碼說明

  • 默認(rèn)模式:僅自動識別首個字符作為文字(如“曾”讀 céng)。
  • head 模式:明確指定首個字符按姓氏處理(與默認(rèn)行為相同,但顯式聲明意圖)。
  • all 模式:強(qiáng)制將所有可能的姓氏字符按多音字處理(如“樂樂”中的“樂”讀 yuè)。

非漢字字符處理

console.log(pinyin("我very喜歡吃"));
// 輸出: wǒ v e r y xǐ huan chī

console.log(pinyin("我very喜歡吃", { nonZh: "removed" }));
// 輸出: wǒ xǐ huan chī

console.log(pinyin("我very喜歡吃", { nonZh: "consecutive" }));
// 輸出: wǒ very xǐ huan chī

參數(shù)說明

nonZh 參數(shù)控制非中文字符的處理方式:

  • 默認(rèn)行為:將每個非中文字符拆分為單獨(dú)的元素
  • "removed":完全移除所有非中文字符
  • "consecutive":將連續(xù)的非中文字符合并為一個元素

拼音 ü 替換為 v

console.log(pinyin("呂布"));
//輸出 lǚ bù

console.log(pinyin("呂布", { toneType: "none", v: true })); 
//輸出 lv bu

// 帶音調(diào)的 ǖ,ǘ,ǚ,ǜ 不轉(zhuǎn)換
console.log(pinyin("呂布", { v: true })); 
// lǚ bù

console.log(pinyin("呂布", { type: "num", v: true })); 
//官方文檔顯示 lv3 bu4
//實際輸出 lǚ bù

參數(shù)說明

  • toneType: "none" 參數(shù)會移除拼音中的音調(diào)標(biāo)記
  • v: true 參數(shù)將拼音中的 ü 替換為 v
  • type: "num" 參數(shù)會以數(shù)字形式標(biāo)注音調(diào)位置

分詞

const { segment, addDict, OutputFormat } = require("pinyin-pro");
//完整詞典
const CompleteDict = require("@pinyin-pro/data/complete");
//現(xiàn)代漢語詞典
const ModernChineseDict = require("@pinyin-pro/data/modern");

addDict(CompleteDict); //這里使用完整詞典

let res1 = segment("小明碩士畢業(yè)于中國科學(xué)院計算所,后在日本京都大學(xué)深造");

res1 是默認(rèn)輸出格式的結(jié)果,通常為分詞后的數(shù)組形式,結(jié)果如下:

[
  { origin: '小', result: 'xiǎo' },
  { origin: '明', result: 'míng' },
  { origin: '碩士', result: 'shuòshì' },
  { origin: '畢業(yè)', result: 'bìyè' },
  { origin: '于', result: 'yú' },
  { origin: '中國科學(xué)院', result: 'zhōngguókēxuéyuàn' },
  { origin: '計算所', result: 'jìsuànsuǒ' },
  { origin: ',', result: ',' },
  { origin: '后', result: 'hòu' },
  { origin: '在', result: 'zài' },
  { origin: '日本京都大學(xué)', result: 'rìběnjīngdūdàxué' },
  { origin: '深造', result: 'shēnzào' }
]

分詞的不同返回格式

let res2 = segment("小明碩士畢業(yè)于中國科學(xué)院計算所,后在日本京都大學(xué)深造", {
  format: OutputFormat.AllSegment,
});

format:

  • OutputFormat.AllSegment使用 AllSegment 格式,輸出所有可能的分詞組合,通常用于語言學(xué)研究或需要全面分析的場景。
  • OutputFormat.AllArray將分詞結(jié)果以數(shù)組形式返回
  • OutputFormat.AllString將分詞結(jié)果以字符串形式返回
  • OutputFormat.PinyinSegment輸出分詞后的拼音組合
  • OutputFormat.PinyinArray:將拼音結(jié)果以數(shù)組形式返回
  • OutputFormat.PinyinString:將拼音結(jié)果以字符串形式返回
  • OutputFormat.ZhSegment:輸出分詞后的中文組合
  • OutputFormat.ZhArray:將中文分詞結(jié)果以數(shù)組形式返回
  • OutputFormat.ZhString:中文分詞結(jié)果以字符串形式返回
let res = segment("小明碩士畢業(yè)于中國科學(xué)院計算所,后在日本京都大學(xué)深造", {
  format: OutputFormat.AllString,
  separator: "-",
});

使用自定義分隔符 -,將分詞結(jié)果以字符串形式返回,適合需要特定分隔符的場景。

拼音漢字匹配

若拼音和文本匹配,返回匹配的文本下標(biāo):

import { match } from 'pinyin-pro';

match('漢語拼音', 'hanyupinyin'); // [0, 1, 2, 3]

使用 continuous 屬性指定匹配的漢字下標(biāo)是否為連續(xù)的才算匹配成功(默認(rèn)值為 false,即不需要為連續(xù)的匹配):

import { match } from 'pinyin-pro';

match('漢語拼音', 'hanpin'); // [0, 2]

match('漢語拼音', 'hanpin', { continuous: true }); // null

使用 precision 屬性可以控制漢字和拼音匹配的精度:

import { match } from 'pinyin-pro';

// 默認(rèn)首字母匹配算匹配成功
match('中文拼音', 'zwpy'); // [0, 1, 2, 3]

// every 需要每一個字符都匹配成功
match('中文拼音', 'zwpy', { precision: 'every' }); // null
match('中文拼音', 'zhongwenpinyin', { precision: 'every' }); // [0, 1, 2, 3]

// start 只要開頭任意個字母匹配就算匹配成功
match('中文拼音', 'zhwpy', { precision: 'start' }); // [0, 1, 2, 3]
match('中文拼音', 'zhwpy'); // null

// any 任意有一個字母匹配就算匹配成功
match('中文拼音', 'ongwpy', { precision: 'any' }); // [0, 1, 2, 3]
match('中文拼音', 'ongwpy'); // null

使用 space 屬性控制匹配時空格是否不參與匹配:

import { match } from 'pinyin-pro';

// 默認(rèn)不參與匹配
match('漢語拼音', 'han yupinyin'); // [0, 1, 2, 3]

match('漢語拼音', 'han yupinyin', { space: 'preserve' }); // null

使用 lastPrecision 屬性可以控制最后一個漢字和拼音匹配的精度。默認(rèn)情況下,precision 為 any 時,lastPrecision 為 any; 否則 lastPrecision 為 start

import { match } from 'pinyin-pro';

// 默認(rèn)情況下
match('漢語拼音', 'hanyupiny'); // [1, 2, 3, 4]

// 顯式控制 lastPrecision
match('漢語拼音', 'hanyupiny', { lastPrecision: 'every' }); // null

對于多音字,只要其中一個讀音匹配上即算匹配成功:

import { match } from 'pinyin-pro';

match('會計', 'kuaiji'); // [0, 1]
match('會計', 'huiji'); // [0, 1]

通過指定 v 選項來使用 v 來匹配 ü:v3.25.0+

import { match } from 'pinyin-pro';

match('呂布', 'lvbu'); // [0, 1]

HTML字符串

import { html } from 'pinyin-pro';

const htmlString = html('漢語拼音');
//輸出html字符串

在瀏覽器中的預(yù)覽效果如下:

當(dāng)設(shè)置 toneType 屬性的值為 none 時,返回值中的拼音是不帶音調(diào)的。

import { html } from 'pinyin-pro';

const htmlString = html('漢語拼音', { toneType: 'none' });

在瀏覽器中的預(yù)覽效果如下:

可以通過 html api 返回值中的類名來控制具體的樣式,如下面的例子中,我們讓漢字部分為藍(lán)色,拼音部分為紅色。

// js
import { html } from 'pinyin-pro';

const htmlString = html('漢語拼音');
/* css */
.py-chinese-item {
  color: blue;
}
.py-pinyin-item {
  color: red;
}

在瀏覽器中的預(yù)覽效果:

到此這篇關(guān)于Node.js漢字轉(zhuǎn)拼音pinyin-pro的具體使用的文章就介紹到這了,更多相關(guān)Node.js漢字轉(zhuǎn)拼音pinyin-pro內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作實例分析

    Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作實例分析

    這篇文章主要介紹了Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作,結(jié)合實例形式分析了node.js查詢MongoDB數(shù)據(jù)庫及vue前臺頁面渲染等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • 使用 Node.js 模擬滑動拼圖驗證碼操作的示例代碼

    使用 Node.js 模擬滑動拼圖驗證碼操作的示例代碼

    本篇文章主要介紹了使用 Node.js 模擬滑動驗證碼操作的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 淺談Node新版本13.2.0正式支持ES Modules特性

    淺談Node新版本13.2.0正式支持ES Modules特性

    這篇文章主要介紹了淺談Node新版本13.2.0正式支持ES Modules特性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • nodejs基礎(chǔ)知識

    nodejs基礎(chǔ)知識

    本文主要介紹了nodejs基礎(chǔ)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • nodejs+mongodb aggregate級聯(lián)查詢操作示例

    nodejs+mongodb aggregate級聯(lián)查詢操作示例

    這篇文章主要介紹了nodejs+mongodb aggregate級聯(lián)查詢操作,結(jié)合實例形式分析了基于nodejs的mongodb數(shù)據(jù)庫級聯(lián)查詢相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 如何利用node實現(xiàn)靜態(tài)文件緩存詳解

    如何利用node實現(xiàn)靜態(tài)文件緩存詳解

    HTTP 緩存機(jī)制作為 Web 應(yīng)用性能優(yōu)化的重要手段,對于從事 Web 開發(fā)的同學(xué)們來說,應(yīng)該是知識體系的基礎(chǔ)環(huán)節(jié),也是想要成為前端架構(gòu)的必備技能,這篇文章主要給大家介紹了關(guān)于如何利用node實現(xiàn)靜態(tài)文件緩存的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Node.js API詳解之 vm模塊用法實例分析

    Node.js API詳解之 vm模塊用法實例分析

    這篇文章主要介紹了Node.js API詳解之 vm模塊用法,結(jié)合實例形式分析了Node.js API中vm模塊基本功能、函數(shù)、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2020-05-05
  • koa2上傳文件及https配置實現(xiàn)教程

    koa2上傳文件及https配置實現(xiàn)教程

    這篇文章主要為大家介紹了koa2上傳文件及https配置實現(xiàn)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Node.js使用Middleware中間件教程詳解

    Node.js使用Middleware中間件教程詳解

    中間件(Middleware),特指業(yè)務(wù)流程的中間處理環(huán)節(jié),Express中間件的調(diào)用流程-當(dāng)一個請求處理時,可以連續(xù)調(diào)用多個中間件,從而對這次請求進(jìn)行預(yù)處理
    2023-04-04
  • 全面解析Node.js 8 重要功能和修復(fù)

    全面解析Node.js 8 重要功能和修復(fù)

    5月30日12點,Node.js 8正式發(fā)布了,這個版本具有一系列新功能和性能改進(jìn),并且這些功能和改進(jìn)將獲得長期支持(LTS)。下面就來介紹Node.js 8版本中最重要的功能和修復(fù)
    2017-06-06

最新評論