jsp如何实现输入首字母弹出对应汉字的名字列表

作者&投稿:达莲 (若有异议请与网页底部的电邮联系)
ASP.NET 输入地名首字母,会弹出对应地名的汉字选项单击选择,这是什么控件做的?求主代码,谢啦!!~

添加地名的时候,同时生成地名的拼音,取每个汉子拼音的首字母,存放在对应地名的字段中,查询的时候,模糊查询相应的首字母,弹出实际的地名。
百度搜索估计也是这样子的,只不过它存的是拼音。




下拉列表快速选择


// 获取拼音首字母
function getPinYin(c) {
execScript("tmp=asc(\""+c+"\")", "vbscript");
tmp = 65536 + tmp;
if(tmp>=45217 && tmp<=45252) return "A";
if(tmp>=45253 && tmp<=45760) return "B";
if(tmp>=45761 && tmp<=46317) return "C";
if(tmp>=46318 && tmp<=46825) return "D";
if(tmp>=46826 && tmp<=47009) return "E";
if(tmp>=47010 && tmp<=47296) return "F";
if((tmp>=47297 && tmp<=47613) || (tmp == 63193)) return "G";
if(tmp>=47614 && tmp<=48118) return "H";
if(tmp>=48119 && tmp<=49061) return "J";
if(tmp>=49062 && tmp<=49323) return "K";
if(tmp>=49324 && tmp<=49895) return "L";
if(tmp>=49896 && tmp<=50370) return "M";
if(tmp>=50371 && tmp<=50613) return "N";
if(tmp>=50614 && tmp<=50621) return "O";
if(tmp>=50622 && tmp<=50905) return "P";
if(tmp>=50906 && tmp<=51386) return "Q";
if(tmp>=51387 && tmp<=51445) return "R";
if(tmp>=51446 && tmp<=52217) return "S";
if(tmp>=52218 && tmp<=52697) return "T";
if(tmp>=52698 && tmp<=52979) return "W";
if(tmp>=52980 && tmp<=53688) return "X";
if(tmp>=53689 && tmp<=54480) return "Y";
if(tmp>=54481 && tmp<=62289) return "Z";
return c.charAt(0);
}
// select helper
SelectHelper = new function() {
// 初始化
this.init = function() {
document.attachEvent("onkeypress", function() {
var elm = event.srcElement;
if (elm.tagName == "SELECT"
&& elm.className.indexOf("SelectHelper") == -1) {
elm.className += "SelectHelper";
elm.attachEvent("onkeypress", SelectHelper.getNextKeyItem);
elm.fireEvent("onkeypress", event);
}
});
}
// 获取选项文本的首字符
function getItemKeyChar(option) {
return option.text.charAt(0).toUpperCase();
}
// 查找并选中匹配的选项
this.getNextKeyItem = function() {
var elm = event.srcElement;
var index = elm.selectedIndex + 1;
do {
if (index == elm.length) index = 0;
if (index == elm.selectedIndex) return false; // 未找到匹配的选项,则退出
} while (key2Char(event.keyCode) != getPinYin(getItemKeyChar(elm.options[index++])));
elm.selectedIndex = index - 1; // 选中匹配的选项
return false; // 取消原有的选择功能
}
};
/**
* 返回键盘事件对应的字母或数字
* a-z: 97 -> 122
* A-Z: 65 -> 90
* 0-9: 48 -> 57
*/
function key2Char(key) {
var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (key >= 97 && key <= 122) return s.charAt(key - 97);
if (key >= 65 && key <= 90) return s.charAt(key - 65);
if (key >= 48 && key <= 57) return "" + (key - 48);
return null;
}
SelectHelper.init();



比如,某选项的拼音首字母为"a",只要按下键盘上的"a",就可以快速选择该项。


北京
上海
天津
重庆
河北
山西
内蒙古
辽宁
32
吉林
黑龙江
江苏
浙江
&^
安徽
福建
A1
江西
山东
河南
湖北
湖南
31
广东
广西
海南
A2
四川
贵州
云南
西藏
陕西
甘肃
宁夏
青海
新疆
香港
澳门
台湾
其它


北京
上海
天津
重庆
河北
山西
内蒙古
辽宁
32
吉林
黑龙江
江苏
浙江
&^
安徽
福建
A1
江西
山东
河南
湖北
湖南
31
广东
广西
海南
A2
四川
贵州
云南
西藏
陕西
甘肃
宁夏
青海
新疆
香港
澳门
台湾
其它


package com.MusicWeb.vo;

public class StringUtil {

// private static Log logger = LogFactory.getLog(StringUtil.class);

// 国标码和区位码转换常量
static final int GB_SP_DIFF = 160;
//存放国标一级汉字不同读音的起始区位码
static final int[] secPosvalueList = {
1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,
3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,
4390, 4558, 4684, 4925, 5249, 5600};

//存放国标一级汉字不同读音的起始区位码对应读音
static final char[] firstLetter = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
't', 'w', 'x', 'y', 'z'};

//获取一个字符串的拼音码
public static String getFirstLetter(String oriStr) {
String str = oriStr.toLowerCase();
StringBuffer buffer = new StringBuffer();
char ch;
char[] temp;
for (int i = 0; i < str.length(); i++) { //依次处理str中每个字符
ch = str.charAt(i);
temp = new char[] {ch};
byte[] uniCode = new String(temp).getBytes();
if (uniCode[0] < 128 && uniCode[0] > 0) { // 非汉字
buffer.append(temp);
} else {
buffer.append(convert(uniCode));
}
}
return buffer.toString();
}

/** 获取一个汉字的拼音首字母。
* GB码两个字节分别减去160,转换成10进制码组合就可以得到区位码
* 例如汉字“你”的GB码是0xC4/0xE3,分别减去0xA0(160)就是0x24/0x43
* 0x24转成10进制就是36,0x43是67,那么它的区位码就是3667,在对照表中读音为‘n’
*/

static char convert(byte[] bytes) {

char result = '-';
int secPosvalue = 0;
int i;
for (i = 0; i < bytes.length; i++) {
bytes[i] -= GB_SP_DIFF;
}
secPosvalue = bytes[0] * 100 + bytes[1];
for (i = 0; i < 23; i++) {
if (secPosvalue >= secPosvalueList[i] && secPosvalue < secPosvalueList[i + 1]) {
result = firstLetter[i];
break;
}
}
return result;
}
public static void main(String[] args) {
System.out.println(StringUtil.getFirstLetter("I love u"));
System.out.println(StringUtil.getFirstLetter("我爱北京天安门"));
System.out.println(StringUtil.getFirstLetter("I love 北京天安门"));
}
}


excel怎么批量加sp
1、首先第一步,选中数据。2、其次点击鼠标右键,选择“设置单元格格式”。3、最后在“自定义”的“类型”里输入井号键“qq.com”,再点击“确定”即可批量加sp。

什么是S8SP加密路线?
S8SP加密路线和隐藏路线在保护数据安全方面有着不同的机制和应用。首先,S8SP加密路线主要是通过先进的加密算法和密钥管理系统来确保数据在传输过程中的安全性。这种加密技术能够有效地防止黑客或恶意用户窃取或篡改数据。由于S8SP加密路线采用了高级的加密技术,其配置相对复杂,需要一定的专业知识和技术支持。

sp有哪些工具呢?
在SP的工具世界里,存在着丰富多样的选择。首先,基础的工具包括手工拍、鸡毛掸子、扫把以及各种拍子,如皮质拍、塑料拍、藤拍和木拍等。皮质拍以其轻盈的手感脱颖而出,为使用者提供了不同的触感体验。在传统的惩罚工具中,竹尺扮演了重要角色。作为经典的SP选择,竹尺可以根据个人对疼痛的承受度进行...

otk打法sp
这时候如果玩家能够提前预判,并在BOSS进入狂暴状态前释放SP技能,往往能够取得意想不到的效果。总的来说,OTK打法中的SP技能运用,需要玩家对游戏机制有深入的理解,对战斗节奏有精准的把控,以及对敌人状态有敏锐的洞察。只有这样,才能在关键时刻释放出最强的SP技能,实现一击必杀的效果。

sp在英语里怎么读?
1、当sp在词首时,按照英语读音的习惯,在s音后面的清辅音会读成相应的浊辅音,即清辅音浊化。例如:spy 间谍 \/spai\/ 轻辅音浊化就应该是\/sbai\/ ;spoon 勺 \/spu:n \/轻辅音浊化就应该是\/sbu:n\/ ;star 星星 \/sta:\/ 轻辅音浊化就应该是 \/sda:\/ ;即在\/s\/后面,如果跟的是\/p\/、\/k\/、...

短信联盟里的sp广告是怎么来的
这些潜在购买者就会收到这条精心制作的短信广告。总之,短信联盟里的SP广告是通过广告主与短信服务提供商(SP)的合作实现的。广告主提供广告内容和投放要求,SP负责审核、筛选和发送广告内容给目标用户。这种合作方式使得广告主能够利用短信这一高效的传播渠道,实现产品推广和品牌推广的目的。

char a[20]="abcd"; char *sp=s; sp++; puts(stract(sp,"ABCD...
此时sp指向abcd中的a)③sp++,指针后移了到下一个位置,(由于数组的地址是连续的,所以此时sp指向a后面的b)④strcat(sp,"ABCD"),把"ABCD"的首地址放在了与sp所指的数组结尾相连并存在数组里面(此时数组s变成了abcdABCD)⑤最后puts(sp),由于sp是指向数组的指针,且指的是"b",所以"bcdABCD"~...

sp可以是哪两个汉字拼音首个字母的缩写
树皮…( ^_^ )

苹果6sp手机换铃声方法
1、下载并安装iTunes,iTunes是苹果设备专用的同步下载软件。2、下载你想要设置铃声的音乐,例如从qq音乐下载了一首《她说》。3、打开iTunes,把你下载好的音乐导入(点击左上角的文件,在里面选择将文件添加到资料库即可)。4、最好是先试听一下,把自己喜欢的其中一段的起始时间跟结束时间记清楚;最...

护士小葵SP-特别篇
护士小葵的特别篇(SP)于2006年9月26日在富士电视CX首播。这部剧改编自こしのりょう的Ns’あおい,在讲谈社的《モーニング》连载中。吉田智子担任编剧,小椋久雄和永井丽子为制作人,土方政人、都筑淳一、石川淳一负责导演。字幕为繁体中文,出品方为猪猪字幕组。石原里美回归主演,饰演成长后成熟...

鲁甸县13462825750: 文本域输入汉字 第二个文本域立即显示汉字的获取首个字母 如何用JS实现 -
鄘汪硫酸: 可以考虑用change()方法 假设你的两个文本域的id分别为a1,a2. 当在a1上面输入文字是在a2上面显示输入文字的拼音?!是这么个意思吧?? 你可以在数据库将汉字相对应的拼音写上去,然后根据汉字拿到拼音.如果用jquery的话: $("#a1").onChange(){异步操作.}

鲁甸县13462825750: javascript如何实现像输入法一样的效果,即打一个字,就提示下一个字或一个词组. -
鄘汪硫酸: 输入框定义onclick onblur事件,打入一个字,或词组触发Javascript方法,javascript方法中用Ajax请求数据库匹配 like %你输入的字%,有匹配则返回给JS,JS再把其放到页面的适合位置

鲁甸县13462825750: js中如何实现输入汉字的拼音声母出现对应的汉字? -
鄘汪硫酸: 和google的输入提示一个道理,几乎所有Ajax入门书都讲这个.简单的说,输入框的onchange事件的响应函数里面增加一个xmlhttp请求,服务器响应请求返回提示更新页面.但是细节上考虑要多复杂有多复杂,首先就是拼音到汉字,你需要找输入法的源代码,然后就是缓存,数据库,安全性等等…… 方案二:纯js 用js写一个输入法…… 大致思路是页面用按音序排列的编码,如GB2312,然后以音序映射到字符编码上

鲁甸县13462825750: jsp中要做一个 模糊查询 例如输入姓名时 输入“张”下拉框中即出现"张*、张**”等 代码该如何实现? -
鄘汪硫酸: 你的意思是不是,在页面如果打“z”,转换成汉字对应的一些字,然后再根据这些字,来查数据库,取的相关的数据?这样麻烦.一般都是在存数据的时候,就已经转换好了对应的拼音.比如要存:张** ,在存入数据库的时生成一个对应的拼音:zhang** ,把这个也一起存了,汉字存汉字字段,拼音存拼音字段.查找时输入z,就直接在拼音字段里查需要的数据.如果表允许再增加字段,还是加个拼音的字段,查找时候方便,快捷.网上找个汉字转换拼音的类,把数据处理一下,存进拼音字段里. 这个是汉字转拼音参考:http://hi.baidu.com/suofang/blog/item/36ba0324598b4b38c8955924.html

鲁甸县13462825750: 边输入拼音边查找匹配的项目怎样实现 -
鄘汪硫酸: 用js响应输入框的变化,用ajax传回后台,后台jsp根据接收的字符,去数据库查找相关词句,再返回前台,ajax接收到jsp返回的代码后,显示在前台.

鲁甸县13462825750: Java怎么写汉字首字母提示,比如在输入框写"zj"则下拉框出现“镇江”,“湛江”等等?
鄘汪硫酸: 要实现这种,首先你要在后台有个存具体数据的表或者集合,看你用的什么框架,然后用ajax或者dwr技术实现步步查询,就是输入z就查询一次,输入zj再查询一次,=然后定义一个隐藏的区域在要显示的地方用来显示结果就行

鲁甸县13462825750: 用Javascript如何实现在输入框中输入汉字拼音的首字母动态过滤相应的汉字?? -
鄘汪硫酸: 把汉字先转成拼音(百度一下就有代码) 再用ajax来更新

鲁甸县13462825750: 在JSP中如何实现接受中文啊? -
鄘汪硫酸: request.setCharset("GBK");--("UTF-8") ------不设置这个话,会有乱码的现象 String name=request.getParameter("jsp中用户输入用户的文本框名字,例如:loginame"); String pass=request.getParameter("jsp中用户输入密码的文本框名字,例如:logipass"); loginame,logipass ————一定要和jsp的文本框名字一样,不然会取不到

鲁甸县13462825750: 网页输汉字首字母提示文字如何编写
鄘汪硫酸: 这个比较复杂.首先你得有一个数据库,该数据库中有两个列,一个放汉字(单字或词组),一个放对应的拼音.在文本框中输入字母时,页面用Ajax技术访问数据库,找到符合该字母的汉字,然后显示出来.

鲁甸县13462825750: java如何实现拼音首字母检索汉字 -
鄘汪硫酸: 使用pinyin4j或者jpinyin的,先将汉字转换为拼音,然后记录拼音的首字母,具体的检索过程可以用循环过滤,也可以用前缀树 比如tire树 参考链接:网页链接 java实现汉字转拼音 网页链接 tire树

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网