前端js如何实现中文转拼音(重要)
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如何实现中文转拼音(重要)相关推荐
- js实现将中文转拼音缩写大小写
前端开发一起交流QQ群:740034288. 1. 参考:https://blog.csdn.net/qq_38366657/article/details/83788507. 2. 封装: var ...
- 前端js实现文字自动转拼音方法
一.项目需求 实现输入文字,自动转为拼音 比如:输入:测试, 输出:CeShi 二.实现方法 1. 引入字符编码(JSON)的js文件,命名为:ChineseHelprStr.js export de ...
- 前端js实现中文转拼音 --- 完整解决方案
资料: 使用到的库 :一个实现汉字与拼音互转的小巧web工具库 作者本人的博客园文章:[干货]JS版汉字与拼音互转终极方案,附简单的JS拼音输入法 作者本人的博客文章:[干货]JS版汉字与拼音互转终极 ...
- 推荐一款中文转拼音的前端插件-pinyin
写在前面 最近在项目中,需要使用中文转拼音的功能,在网上找到一款比较全面的js插件-pinyin.js 使用方法 1.安装 npm i pinyin 或者 npm i js-pinyin 2.使用方法 ...
- js转换中文为拼音以及首字母
转换中文为拼音以及首字母 toPinyin (中文转拼音) 引入: import toPinyin from '@/util/function/pinyin' 使用: toPinyin('中1文') ...
- js中文转拼音首字母(js汉字转拼音首字母)
一.js中文转拼音首字母实现功能 汉字转拼音首字母,js中文转拼音首字母 二.js中文转拼音首字母业务场景 在写即时通讯时必然要做通讯录(联系人列表),联系人列表通常是按照拼音字母表的顺序进行展示的, ...
- react根据中文获取拼音_vue 获取汉字的全拼、简拼、首拼
1.封装公共方法,获取汉字的全拼.简拼.首拼 export const Pinyin = { _JMcode:{ "-":"", "-":& ...
- JEECG 前端JS国际化实现,采用i18n新技术方案
JEECG 前端JS国际化实现,采用i18n新技术方案 JEECG平台已全面实现了国际化,从后台代码提示到页面表单,使用方法简单易用: 后台配置国际化语言,java或者jsp层通过 引用国际化标签,即 ...
- js正则表达式将中文标点转为英文标点
js正则表达式将中文标点转为英文标点 前言 最近写前端的项目,本以为需要将中文标点转为英文标点这一功能的,所以写了这个文件,但是最后用不上了,删掉了可惜,所以发表出来,做个记录.因为没有使用上,所以不 ...
- 前端JS常用工具方法
前端JS常用工具方法 // var ua = window.navigator.userAgent.toLowerCase(); /*** 前端JS常用工具方法* @class Tools*/ exp ...
最新文章
- 我工作三年了,该懂并发了(干货)
- iOS开发之Masonry框架源码深度解析
- spring29: JdbcTemplate详解
- tcp/ip 协议栈Linux源码分析三 IPv4分片报文重组分析三
- SDUT 1265-马停下过河卒(DFS)
- android布局属性详解(转)
- matlab中nc文件,教程合集 | MATLAB文件读写(以nc与txt为例)
- mysql查询当天数据(上周、本月、上个月、距离当前现在6个月的数据)
- Linux curl命令简介
- 再次总结一下压缩与解压缩
- 支付宝异步通知 java_java 支付宝支付 手机网站支付结果异步通知
- 整理出Android逆向系列学习进阶视频,全网疯传
- 用广义线性模型进行数据分析(下)
- 进阶实验5-3.2 新浪微博热门话题 (30 分)
- 关于使用U盘制作简单windows开机加密狗
- 贝壳云php源码,贝壳云P1刷Armbian系统后的折腾笔记
- 六十六条经典禅语名句
- diy 扫地机器人 滚刷_扫地机器人滚刷和边刷分别有什么作用
- 安卓沉浸式状态栏_安卓平板也能有品质感,小新Pad Pro上手
- autosar工具链