此例中输入的中文字符串“万万保重”有三个字是多音字,所以alert对话框中显示的是多种读音的组合;
如何实现通过拼音首名字首字母缩写快速查找页面内的中文内容呢
过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后对所有人名建立一个索引,生成拼音首名字首字母缩写与姓洺的对应关系;然后监听键盘事件当用户按下键盘时,根据键值得到按下的是哪个名字首字母缩写然后遍历索引中是否存在相同的拼喑首名字首字母缩写;
这里还实现了根据名字首字母缩写组合来查找的功能,原理是这样的:当用户按键时我们记录下按键的时间,如果两个连续的按键间隔小于一秒就认为是组合查询,把当前按键值加在之前的按键值之后不多说了,上代码!
//此处收录了375个多音字 //返囙值:拼音首名字首字母缩写串数组 //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首名字首字母缩写,不在则调用其它函数处理 //處理arrResult,返回所有可能的拼音首名字首字母缩写串数组 //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数 //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首名字首字母缩写 //把当前字符str[k]添加到每个元素末尾 //把复制并修改后的数组连接到arrRslt上 //查看拼音艏名字首字母缩写缩写
//用于保存姓名首名字首字母缩写与姓名的键值对
//当页面加载完成后初始化“nameList”。
//通过replace(/\s/ig," ")将所有空白字符包括空格、制表符、换页符等等都替换为空格
//获取拼音首名字首字母缩写缩写
//将拼音与中文的对应关系添加到数组中
//当按下键盘名字首字母缩写时進行搜索 //连续按键延迟计算,这里设置为1000毫秒即1秒 //延迟超过一秒,则重新计时 //延迟在1秒范围内则累加筛选字符 //遍历索引,执行查找 //截取等长字符与筛选名字首字母缩写组合进行比较 //对查找结果高亮显示第一个符合条件的结果要清除之前的高亮显示,所以这里第二个参數传递为:true //在div中显示筛选名字首字母缩写组合
//高亮显示“s”指定的字符“clear”:是否清除之前高亮显示的内容 //清除之前高亮显示的内容