亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

pinyin-pro 工具庫(kù)簡(jiǎn)介

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

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

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

基礎(chǔ)使用示例

以下代碼示例展示如何通過(guò) pinyin-pro 庫(kù)實(shí)現(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ù)說(shuō)明

  • toneType

    • "symbol": 默認(rèn)值,輸出帶聲調(diào)符號(hào)的拼音(如 nǐ hǎo shì jiè
    • "none": 輸出無(wú)聲調(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("漢語(yǔ)拼音", { pattern: "num", type: "array" }));
//輸出:[ '4', '3', '1', '1' ]

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

功能說(shuō)明

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

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

完整拼音

// 獲取拼音完整內(nèi)容
console.log(pinyin("漢語(yǔ)拼音", { 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ù)說(shuō)明(以“你”為例):

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

姓名模式

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

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

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

代碼說(shuō)明

  • 默認(rèn)模式:僅自動(dòng)識(shí)別首個(gè)字符作為文字(如“曾”讀 céng)。
  • head 模式:明確指定首個(gè)字符按姓氏處理(與默認(rèn)行為相同,但顯式聲明意圖)。
  • all 模式:強(qiáng)制將所有可能的姓氏字符按多音字處理(如“樂(lè)樂(lè)”中的“樂(lè)”讀 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ù)說(shuō)明

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

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

拼音 ü 替換為 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
//實(shí)際輸出 lǚ bù

參數(shù)說(shuō)明

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

分詞

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

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

let res1 = segment("小明碩士畢業(yè)于中國(guó)科學(xué)院計(jì)算所,后在日本京都大學(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: '中國(guó)科學(xué)院', result: 'zhōngguókēxuéyuàn' },
  { origin: '計(jì)算所', 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è)于中國(guó)科學(xué)院計(jì)算所,后在日本京都大學(xué)深造", {
  format: OutputFormat.AllSegment,
});

format:

  • OutputFormat.AllSegment使用 AllSegment 格式,輸出所有可能的分詞組合,通常用于語(yǔ)言學(xué)研究或需要全面分析的場(chǎng)景。
  • 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è)于中國(guó)科學(xué)院計(jì)算所,后在日本京都大學(xué)深造", {
  format: OutputFormat.AllString,
  separator: "-",
});

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

拼音漢字匹配

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

import { match } from 'pinyin-pro';

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

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

import { match } from 'pinyin-pro';

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

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

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

import { match } from 'pinyin-pro';

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

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

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

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

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

import { match } from 'pinyin-pro';

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

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

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

import { match } from 'pinyin-pro';

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

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

對(duì)于多音字,只要其中一個(gè)讀音匹配上即算匹配成功:

import { match } from 'pinyin-pro';

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

通過(guò)指定 v 選項(xiàng)來(lái)使用 v 來(lái)匹配 ü:v3.25.0+

import { match } from 'pinyin-pro';

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

HTML字符串

import { html } from 'pinyin-pro';

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

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

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

import { html } from 'pinyin-pro';

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

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

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

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

const htmlString = html('漢語(yǔ)拼音');
/* 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

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

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

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

    使用 Node.js 模擬滑動(dòng)拼圖驗(yàn)證碼操作的示例代碼

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

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

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

    nodejs基礎(chǔ)知識(shí)

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論