npm地址: https://www.npmjs.com/package/pinyin-converter
安装
via npm:

npm install pinyin
用法
开发者:

var pinyin = require(“pinyin”);

console.log(pinyin(“中心”)); // [ [ ‘zhōng’ ], [ ‘xīn’ ] ]
console.log(pinyin(“中心”, {
heteronym: true // 启用多音字模式
})); // [ [ ‘zhōng’, ‘zhòng’ ], [ ‘xīn’ ] ]
console.log(pinyin(“中心”, {
heteronym: true, // 启用多音字模式
segment: true // 启用分词,以解决多音字问题。
})); // [ [ ‘zhōng’ ], [ ‘xīn’ ] ]
console.log(pinyin(“中心”, {
style: pinyin.STYLE_INITIALS, // 设置拼音风格
heteronym: true
})); // [ [ ‘zh’ ], [ ‘x’ ] ]
命令行:

$ pinyin 中心
zhōng xīn
$ pinyin -h
API
方法 pinyin(words[, options])
将传入的中文字符串 (words) 转换成拼音符号串。

options 是可选的,可以设定拼音风格,或打开多音字选项。

返回二维数组,第一维每个数组项位置对应每个中文字符串位置。 第二维是各个汉字的读音列表,多音字会有多个拼音项。

方法 Number pinyin.compare(a, b)
按拼音排序的默认算法。

参数
options.segment
是否启用分词模式,中文分词有助于极大的降低多音字问题。 但性能会极大的下降,内存也会使用更多。

options.heteronym
是否启用多音字模式,默认关闭。

关闭多音字模式时,返回每个汉字第一个匹配的拼音。

启用多音字模式时,返回多音字的所有拼音列表。

options.style
指定拼音 风格。可以通过以下几种 STYLE_ 开头的静态属性进行指定。

静态属性
.STYLE_NORMAL
普通风格,即不带音标。

如:pin yin

.STYLE_TONE
声调风格,拼音声调在韵母第一个字母上。

注:这是默认的风格。

如:pīn yīn

.STYLE_TONE2
声调风格 2,即拼音声调以数字形式在各个拼音之后,用数字 [0-4] 进行表示。

如:pin1 yin1

.STYLE_TO3NE
声调风格 3,即拼音声调以数字形式在注音字符之后,用数字 [0-4] 进行表示。

如:pi1n yi1n

.STYLE_INITIALS
声母风格,只返回各个拼音的声母部分。对于没有声母的汉字,返回空白字符串。

如:中国 的拼音 zh g

注:声明风格会区分 zh 和 z,ch 和 c,sh 和 s。

注意:部分汉字没有声母,如 啊,饿 等,另外 y, w, yu 都不是声母, 这些汉字的拼音声母风格会返回 “”。请仔细考虑你的需求是否应该使用首字母风格。 详情请参考 为什么没有 y, w, yu 几个声母

.STYLE_FIRST_LETTER
首字母风格,只返回拼音的首字母部分。

如:p y

Test
npm test
Q&A
关于 Web 版如何使用
首先,我建议大家应该优先考虑在服务端一次性转换拼音并将结果持久化,避免中客户端每次转换损耗性能和体验。

如果你坚持中客户端使用,你可以考虑使用 Webpack + Babel 来转换成低端浏览器的可执行代码。

实在不想折腾,可以试试 https://github.com/hotoo/pinyin/tree/gh-pages/dist

为什么没有 y, w, yu 几个声母?
声母风格(INITIALS)下,“雨”、“我”、“圆”等汉字返回空字符串,因为根据《汉语拼音方案》, y,w,ü (yu) 都不是声母,在某些特定韵母无声母时,才加上 y 或 w,而 ü 也有其特定规则。

如果你觉得这个给你带来了麻烦,那么也请小心一些无声母的汉字(如“啊”、“饿”、“按”、“昂”等)。 这时候你也许需要的是首字母风格(FIRST_LETTER)。

如何实现按拼音排序?
pinyin 模块提供了默认的排序方案:

const pinyin = require(‘pinyin’);

const data = ‘我要排序’.split(’’);
const sortedData = data.sort(pinyin.compare);
如果默认的比较方法不能满足你的需求,你可以自定义 pinyinCompare 方法:

const pinyin = require(‘pinyin’);

const data = ‘我要排序’.split(’’);

// 建议将汉字的拼音持久化存储起来。
const pinyinData = data.map(han => ({
han: han,
pinyin: pinyin(han)[0][0], // 可以自行选择不同的生成拼音方案和风格。
}));
const sortedData = pinyinData.sort((a, b) => {
return a.pinyin.localeCompare(b.pinyin);
}).map(d => d.han);
node 版和 web 版有什么异同?
pinyin 目前可以同时运行在 Node 服务器端和 Web 浏览器端。 API 和使用方式完成一致。

前端js如何实现中文转拼音(重要)相关推荐

  1. js实现将中文转拼音缩写大小写

    前端开发一起交流QQ群:740034288. 1. 参考:https://blog.csdn.net/qq_38366657/article/details/83788507. 2. 封装: var ...

  2. 前端js实现文字自动转拼音方法

    一.项目需求 实现输入文字,自动转为拼音 比如:输入:测试, 输出:CeShi 二.实现方法 1. 引入字符编码(JSON)的js文件,命名为:ChineseHelprStr.js export de ...

  3. 前端js实现中文转拼音 --- 完整解决方案

    资料: 使用到的库 :一个实现汉字与拼音互转的小巧web工具库 作者本人的博客园文章:[干货]JS版汉字与拼音互转终极方案,附简单的JS拼音输入法 作者本人的博客文章:[干货]JS版汉字与拼音互转终极 ...

  4. 推荐一款中文转拼音的前端插件-pinyin

    写在前面 最近在项目中,需要使用中文转拼音的功能,在网上找到一款比较全面的js插件-pinyin.js 使用方法 1.安装 npm i pinyin 或者 npm i js-pinyin 2.使用方法 ...

  5. js转换中文为拼音以及首字母

    转换中文为拼音以及首字母 toPinyin (中文转拼音) 引入: import toPinyin from '@/util/function/pinyin' 使用: toPinyin('中1文') ...

  6. js中文转拼音首字母(js汉字转拼音首字母)

    一.js中文转拼音首字母实现功能 汉字转拼音首字母,js中文转拼音首字母 二.js中文转拼音首字母业务场景 在写即时通讯时必然要做通讯录(联系人列表),联系人列表通常是按照拼音字母表的顺序进行展示的, ...

  7. react根据中文获取拼音_vue 获取汉字的全拼、简拼、首拼

    1.封装公共方法,获取汉字的全拼.简拼.首拼 export const Pinyin = { _JMcode:{ "-":"", "-":& ...

  8. JEECG 前端JS国际化实现,采用i18n新技术方案

    JEECG 前端JS国际化实现,采用i18n新技术方案 JEECG平台已全面实现了国际化,从后台代码提示到页面表单,使用方法简单易用: 后台配置国际化语言,java或者jsp层通过 引用国际化标签,即 ...

  9. js正则表达式将中文标点转为英文标点

    js正则表达式将中文标点转为英文标点 前言 最近写前端的项目,本以为需要将中文标点转为英文标点这一功能的,所以写了这个文件,但是最后用不上了,删掉了可惜,所以发表出来,做个记录.因为没有使用上,所以不 ...

  10. 前端JS常用工具方法

    前端JS常用工具方法 // var ua = window.navigator.userAgent.toLowerCase(); /*** 前端JS常用工具方法* @class Tools*/ exp ...

最新文章

  1. 我工作三年了,该懂并发了(干货)
  2. iOS开发之Masonry框架源码深度解析
  3. spring29: JdbcTemplate详解
  4. tcp/ip 协议栈Linux源码分析三 IPv4分片报文重组分析三
  5. SDUT 1265-马停下过河卒(DFS)
  6. android布局属性详解(转)
  7. matlab中nc文件,教程合集 | MATLAB文件读写(以nc与txt为例)
  8. mysql查询当天数据(上周、本月、上个月、距离当前现在6个月的数据)
  9. Linux curl命令简介
  10. 再次总结一下压缩与解压缩
  11. 支付宝异步通知 java_java 支付宝支付 手机网站支付结果异步通知
  12. 整理出Android逆向系列学习进阶视频,全网疯传
  13. 用广义线性模型进行数据分析(下)
  14. 进阶实验5-3.2 新浪微博热门话题 (30 分)
  15. 关于使用U盘制作简单windows开机加密狗
  16. 贝壳云php源码,贝壳云P1刷Armbian系统后的折腾笔记
  17. 六十六条经典禅语名句
  18. diy 扫地机器人 滚刷_扫地机器人滚刷和边刷分别有什么作用
  19. 安卓沉浸式状态栏_安卓平板也能有品质感,小新Pad Pro上手
  20. autosar工具链

热门文章

  1. SRAM和DRAM详解
  2. HVIDB!人类病毒蛋白互作数据库介绍
  3. 当面试官说“你还有什么问题想问的”,你该如何回答?
  4. 解析MOS管推挽电路组成结构和特征优缺点
  5. Python办公自动化——发票开具明细汇总
  6. linux进程假死的原因_linux下程序假死
  7. 2020腾讯广告算法大赛——算法小白的复盘
  8. 卸载wps后安装office图标异常的问题
  9. HUAWEI 机试题:相对开音节
  10. IJCAI 2021 | 面向睡眠阶段分类的多模态显著性波形检测网络