纯 JavaScript 拼音转换库 Bopomofo.js

Apache
JavaScript
跨平台
2019-09-19
Rnkrsoft
Bopomofo.js 正在参加 2019 年度最受欢迎开源中国软件评选,请投票支持!
Bopomofo.js 在 2019 年度最受欢迎开源中国软件评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票赢奖品
已投票

Bopomofo.js 是一个纯 JavaScript 开发的拼音转换库。 Java版本 Bopomofo4j

  1. 实现汉字转拼音
  2. 实现汉语单词转拼音
  3. 实现汉语句子转拼音,在一定程度解决多音字问题

官网在线搜索:https://www.rnkrsoft.com/bopomofo,当发现不能正确解析词语读音,可以来这里维护词库,向我们提出申请。

原理

  1. 获取当前汉字的unicode值,如果在[19968,40869]中文区间,则执行第2步,否则直接输出(可能为符号,数字,英文字母或其他语系)
  2. 检查当前汉字是否在多音字库中,如果存在返回该汉字发音的拼音和汉字序列数组,将当前句子上下文进行序列匹配,如果能够匹配,则为该发音。如果无返回,则进入第三步
  3. 维护一个拼音与汉字映射的字库,遍历字库查找该拼音发音的汉字序列,将当前汉字与汉字序列进行检查是否在其中,如果在其中则返回该拼音。

API

/**
 * 将汉字句子转换拼音,支持声母带音调,数字音调,无音调三种格式
 * @param {Object} words 句子
 * @param {Object} toneType 拼音样式 0-声母带音调,1-数字音调在最后,2-无音调,默认值0
 * @param {Object} upper 是否大写,默认为假(小写)
 * @param {Object} cap 是否首字母大写,在upper为假时有效,默认为假(小写)
 * @param {Object} split 分割符号,默认一个空格
 * @return 拼音
 */
function pinyin(words, toneType, upper, cap, split) {
    //输出拼音
}

 

例如:

var v1 = pinyin('中国人!',0, false, false, ' ');
console.log(v1);//控制台输出 zhōng guó rén!
var v2 = pinyin('患难与共的兄弟!!',1, false, false, ' ');
console.log(v2);//控制台输出 huan4 nan4 yu3 gong4 de0 xiong1 di4!!
var v3 = pinyin('this is a pinyin library!这是一个汉语拼音库!!',2, false, false, ' ');
console.log(v3);//控制台输出 this is a pinyin library! zhe shi yi ge han yu pin yin ku!!
的码云指数为
超过 的项目
加载中

评论(2)

Rnkrsoft
Rnkrsoft 软件作者
库中已修正,忘记修改介绍
suiyaqi
suiyaqi
var v1 = pinyin('中国人!',0, false, false, ' '); console.log(v1);//控制台输出 zhōng guǒ rén! 这个音标的明显不对呀,guǒ ,这个应该是第二声

暂无资讯

暂无问答

【书单】JS书单汇总:怀念2013

  从2011年11月到现在,大抵接近两年的时间。对JS的了解,不敢说有多深,不过大都得益于下列书籍。大部分看过,小部分只是翻翻。2014年打算把这些书挑一些出来回顾回顾,然后研究下新的东西...

2014/01/24 00:37
477
2
《深入理解JavaScript系列》

《深入理解JavaScript系列》系列技术文章整理收藏

2015/06/23 15:08
68
0
javascript学习资料分享

有志于web前端工作的话,javascript的知识是必不可少的。越学,我越觉得自己所欠缺的越多。路漫漫其修远兮,吾将上下而求索。下面将一些好的资料分享给大家。 JavaScript学习资料: (1)遇见...

2012/04/06 11:37
3.4K
7
解决一个html 或jsp 引入多个不同版本的jquery 解决方案

解决一个html 或jsp 引入多个不同版本的jquery 解决方案

2017/11/02 12:25
87
0
分享一些前端开发中最常用的JS代码片段

逛社区时看到的文章,我修改调整了内容,如果大家觉得也有帮助 可以收藏下~ HTML5 DOM 选择器 javascript 代码 JavaScript运行复制全屏 1 // querySelector() 返回匹配到的第一个元素 2 var ...

02/27 21:21
73
0
Impatient JavaScript 中文版校对活动期待大家的参与

贡献指南:https://github.com/apachecn/impatient-js-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/apachecn/impatient-js-zh/issues/1 项目仓库:https://github.com/ap...

06/17 10:32
8
0
a标签中调用javascript方法的几种方法:

我们常用的在a标签中有点击事件: 1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的...

2013/12/01 00:20
70
0
asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿;所以一般有良好开发习惯的程序员都会...

2012/11/04 21:28
984
0
【iOS & Web】JavaScript & Objective-C二重奏

一、JS call OC 方法1: 通拦截协议头来获取协议字符串。在UIWebView中的代理方法中有这样的方法,如下图所示: //UIWebView每次请求内容之前,都会调用这个方法,通过返回YES/NO来决定UIWeb...

2016/10/19 18:12
49
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部