在社交应用中,很多场景下需要用到搜索,以微信的搜索通讯录为例。好友自己有昵称,我们可能给他/她备注一个昵称,在输入:拼间、首字母、原文时都应该能匹配到(匹配优先是备注然后才是原来的昵称)。这里以‘芈月传’为例,‘芈’不是常见字,所以输入:myz或者miyuezhuan或者芈月传,都应该能匹配到‘芈月传’这个结果。当然不一定需要全部写完,比如输入:my的时候就应该能匹配到‘芈月传’了。针对多音字的话,可能会麻烦一些,不过也可以解决(在下面的例子之上再进行扩展即可),一般场景下单音已经解决90%以上的问题了,不建议搞的特别复杂。

下面例子的思路是input:原文,output:[全拼,首字母,原文],使用indexOf或者正则忽略大小写对searchKey进行匹配,只要命中一个则认为匹配到了。比如[‘ruyichuan’,’ryc’,’如懿传’],要搜索‘如懿传’,因为中间那个字比较难写,所以我可能会打:ry或者ruyi,此时就应该能匹配到’如懿传’了,做的更好一些就是匹配的字进行标红,那么第一项‘ruyichuan’就应该是数组而不是字符串了。下面这个例子比较取巧,有需要的童鞋可以做为一个参考 :)

See the Pen simple_pinyin by Meteoric (@zhangyi) on CodePen.

转载于:https://www.cnblogs.com/meteoric_cry/p/5954547.html

一个简单的汉字搜索匹配示例(支持拼音、首字母简写)相关推荐

  1. Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)

    简介  这篇文章主要介绍了Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)以及相关的经验技巧,文章约21106字,浏览量320,点赞数5,值得参考! ...

  2. 根据汉字获取它的字符串拼音首字母(大写),含多音字

    /// <summary>         /// 根据汉字获取它的字符串拼音首字母(大写),含多音字         /// </summary>         /// & ...

  3. querybuilder 排序_Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)...

    一.先摆需求: 1.中文搜索.英文搜索.中英混搜   如:"南京东路","cafe 南京东路店" 2.全拼搜索.首字母搜索.中文+全拼.中文+首字母混搜   如 ...

  4. [转载]C#中,让组合框(ComboBox)支持拼音首字母检索筛选

    通过继承系统的ComboBox,写一个新控件ComboBoxEx,重写它的焦点以及文本更新事件,就可以轻松实现拼音首字母检索了.例如:输入 gd ,就可以出现"广东".  1usi ...

  5. mysql全拼_Mysql中取得汉字的全拼、拼音首字母

    一.创建拼音对照表 复制代码代码如下: - 创建汉字拼音对照临时表 CREATE TABLE IF NOT EXISTS t_base_pinyin ( pin_yin_ varchar(255) C ...

  6. Android 利用AutoCompleteTextView实现模糊搜索功能,搜索结果自动提示,识别拼音首字母并转汉字提示

    这里说一下怎么利用 Android 的 AutoCompleteTextView 控件实现模糊搜索功能,AutoCompleteTextView 自带自动提示功能.如果 对自动提示的布局自定义要求比较 ...

  7. php 汉字按字母排序,在PHP中,将一个汉字数组按照拼音首字母进行排序

    (之前发的这篇博文因为含有敏感关键字,只好重发一遍了) $str = "我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点.&qu ...

  8. C# 获取汉字的拼音首字母(转)

    原文:https://blog.csdn.net/younghaiqing/article/details/62417269 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicod ...

  9. C# 获取汉字的拼音首字母和全拼(含源码)

    C# 获取汉字的拼音首字母 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母.碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手 ...

最新文章

  1. 编译OpenCV 2+ with CUDA 9+
  2. python-数据类型
  3. vue中比较完美请求的栗子(使用 axios 访问 API)
  4. python查找数组中出现次数最多的元素
  5. 全球及中国6氯5氨基邻甲酚行业深度调研与运营潜力分析报告2022版
  6. Java计算器接口策略_Java 基础 接口 ——运算
  7. 最新综述:基于Transformer的NLP预训练模型已经发展到何种程度?
  8. DDR3 IP设计说明
  9. .net 出现的异常
  10. 【高并发】java中的线程池 ThreadPoolExecutor
  11. Python模拟入栈出栈操作
  12. 遇见Python.h: No such file or directory的解决方法
  13. 删除字符串中指定位置的字符
  14. pycharm 虚拟环境virtualenv迁移到别的机器 无法读取包的问题
  15. 7月第3周社交网站综合排行Top10:新浪微博居首
  16. Python数据分析之pandas常用命令整理!
  17. php运算符包括,php运算符有哪些 - php完全自学手册 - php中文网手册
  18. 第1章 信息系统综合知识
  19. 分享我是如何找房东直租省中介费 租房 找房 直租 经验
  20. Qt 如何获取本机ip地址

热门文章

  1. 键盘1左边的符号叫什么 mysql_~!#$%^*这些符号怎么读? 当然是用英语(键盘特殊符号小结)...
  2. Unity 利用 LineRenderer 画圆
  3. Ableton Live 10 Suite for mac(音乐制作软件)支持15系统
  4. 开源酒店管理系统(C/S模式)
  5. python 鱼骨图_数据分析必备的三种思考模型
  6. ASP.NET内核开发的租号平台系统源码+UI大气美观
  7. 用python画气球程序_LeetCode-python 312.戳气球
  8. 能让在picturebox中的图片大小随picturebox的大小变化吗?
  9. pp什么意思_pp05材料是什么意思 pp材料是什么材质
  10. python实现小霸王词典