![0b87dca76679c02ff8939be57db2ab5d.png](https://img-blog.csdnimg.cn/img_convert/0b87dca76679c02ff8939be57db2ab5d.png)
本文同步发布在掘金:
掘金--如何实现一个高效的拼音匹配库?
如果本文对你有帮助,麻烦点个star! pinyin-math
首先看看列表效果:
![6348c28b980ae8757d96c7a57bb4a52b.gif](https://img-blog.csdnimg.cn/img_convert/6348c28b980ae8757d96c7a57bb4a52b.gif)
再看看长多音字符串:
![bb9c92fd429ec6bfde5610f9b1a3d467.png](https://img-blog.csdnimg.cn/img_convert/bb9c92fd429ec6bfde5610f9b1a3d467.png)
在线演示地址:pinyin-match
接下来讲讲实现
探索微信的拼音匹配规则
通过参考微信,分为两种情况,一种不包含多音字,一种包含,我们先从简单的开始。
1.不包含多音字,以“你真好(nizhenhao)”为例
命中匹配: 完整的拼音输入√ (当然只输入 zhenhao / hao 也是OK的)
![bad1b0fae3ee347eda3c427c4e2a5883.png](https://img-blog.csdnimg.cn/img_convert/bad1b0fae3ee347eda3c427c4e2a5883.png)
拼音首字母 √
![025e0679e0eb5faa477875b3349dfde0.png](https://img-blog.csdnimg.cn/img_convert/025e0679e0eb5faa477875b3349dfde0.png)
* 最后一个音未输入完整 √(打字打到一半)
![492547e9d33bdd2d060f35a191dd1ac6.png](https://img-blog.csdnimg.cn/img_convert/492547e9d33bdd2d060f35a191dd1ac6.png)
无法命中匹配: 起始字母不是分词点 x (z)henhao
![f153b58469c889ba9cbf821b577318a1.png](https://img-blog.csdnimg.cn/img_convert/f153b58469c889ba9cbf821b577318a1.png)
有的采用缩写有的采用全写 x niz(hen)hao