V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Nbsaw
V2EX  ›  JavaScript

使用 Javscript/Node 获取字符串的拼音首字母

  •  
  •   Nbsaw · 2019-06-03 22:52:44 +08:00 · 2851 次点击
    这是一个创建于 1782 天前的主题,其中的信息可能已经有所发展或是发生改变。

    获取拼音首拼是非常常见的需求,举个例子: 微信的通讯录,手机的通讯录,各种联系人列表。

    image.png

    要做到这一点很容易,比如说引用一个拼音库来读出拼音的首拼。但是往往这些拼音库都是非常完整的体积非常大的库。

    如果你只是想要完成以上的一个小功能。pyfl将会非常适合你。pyfl 的全称是pinyin first letters拼音全拼的意思。

    pyfl是基于pinyinjs写的一个专门获取汉字首拼的库。已经经过作者的同意才开源使用的。

    pyfl 的用法非常简单如下, 在支持import语法的前端项目中:

    import pyfl from 'pyfl';
    pyfl('喵'); // M
    pyfl('好笑吗跟傻子一样整天就知道哈哈哈哈哈哈哈')); // HXMGSZYYZTJZDHHHHHHH
    pyfl('罤夶繙着洗'); // TBFZX
    pyfl('Pure'); // Pure
    pyfl('Made by ❤'); // Made by ❤
    pyfl('أشتون'); // أشتون
    

    如果你想直接在 node 中里面使用的话:

    const pyfl = require('pyfl').default;
    pyfl('喵'); // M
    pyfl('好笑吗跟傻子一样整天就知道哈哈哈哈哈哈哈')); // HXMGSZYYZTJZDHHHHHHH
    pyfl('罤夶繙着洗'); // TBFZX
    pyfl('Pure'); // Pure
    pyfl('Made by ❤'); // Made by ❤
    pyfl('أشتون'); // أشتون
    

    pyfl会把支持的汉字转换成大写的拼音输出出来。如果是英文或者奇怪的文字的话会原样输出出来。

    如果这个库对你有帮助的话,希望你能在 github 上给我一个 star ~

    4 条回复    2019-07-30 11:03:13 +08:00
    jiejiss
        1
    jiejiss  
       2019-06-04 08:39:14 +08:00
    不要在 util 库里输出,该抛异常抛异常。来个 console.error,我 log 乱了怪谁去……
    而且我这看着咋觉得你的 catch 没用呢,try 里的代码真的能出 exception 吗……
    以及,好像不支持多音字,感觉有点太轻量了
    Nbsaw
        2
    Nbsaw  
    OP
       2019-06-04 10:57:44 +08:00
    @jiejiss 阿.. 其实是这样的这个库是很久之前写的了,只是用 ts 重构了一下。
    关于 Log 那部分移掉了, 感谢提醒,本来是自己用的一个库,没特意去做类型检查。
    就随便 catch 了一下。刚才在补上类型转换,检查之类的东东。
    的确不支持多音字,这个我的确没注意到,我想想办法把它加上。
    刚刚测了一下,如果是多音字有些的确挺奇怪的 ..

    感谢你的意见 对我帮助很大 !!
    shawndev
        3
    shawndev  
       2019-06-04 12:57:42 +08:00
    拼音首字母是不是就不应该输出非拼音字符了
    flowfire
        4
    flowfire  
       2019-07-30 11:03:13 +08:00
    遇到多音字的话会怎么处理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   908 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 21:00 · PVG 05:00 · LAX 14:00 · JFK 17:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.