如何根据中文名称获取拼音首字母? 打个比方吧,中国这个词语,我要用js获取词语中第一个词的首字母拼音也就是“Z”,这个该怎么做?有人做过类似的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 帮你找了一段。受篇幅限制,$PinYin.ds = {};放到2楼<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <script type="text/javascript"> var $PinYin = new Object(); var $ = function(o) { if (o) { return document.getElementById(o); } } $PinYin.ds = {}; $PinYin.change = function(ch) { for (var n in $PinYin.ds) { if ($PinYin.ds[n].indexOf(ch) != -1) return n; } return ch; } $PinYin.search = function(val) { var py = ""; for (var i = 0; i < val.length; i++) { var ch = val.charAt(i); if (/^[\u4E00-\u9FA5]$/.test(ch)) ch = $PinYin.change(ch); py += ch } return py; } $PinYin.searchCap = function(val) { var py = ""; for (var i = 0; i < val.length; i++) { var ch = val.charAt(i); if (/^[\u4E00-\u9FA5]$/.test(ch)) ch = $PinYin.change(ch); py += ch.charAt(0); } //return py; $('en').value = py; } </script></head><body><input type="text" id="ch" onblur="$PinYin.searchCap(this.value)"/><input type="text" id="en" /></body></html> 还是太长了。看这里吧http://blog.csdn.net/ad0128/archive/2010/06/08/5655795.aspx 说简单点,就是需要做字库,给个简单的例子<script>var hanzi = "中美俄英法";var zimu = "zmeyf";function getZiMu(str){ return zimu.charAt(hanzi.indexOf(str));}alert(getZiMu("美"));</script> 这个问题转化为取一个汉字的拼音.你可以通过取字串首字符来取首个汉字,得到其拼音后,再取其字符就是首个声母.方式很多,从最笨到较好一些的顺序开始列一些:1.字库查找法:把所有字和其对应的拼音放入一或两个数组中,依次查找.2.关键字库对比法:汉字的排列基本是按照拼音的顺序排的,因此,可以分成多个拼音区间(如BA,BAI,BAN这样的段)的代表汉字摘出来,和其对应的拼音,放入一或两个数组中,用你要处理的汉字去进行比较,判断在哪个区间里.3.和上面类似的,有用汉字内码代替汉字字符来存储的.4.针对楼主的需求,你只需要声母而已,因此,需要摘取的关键字库是很少的.用第2种方法就可以了. <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <script type="text/javascript">var strGB="张飞会计分阶段会计飞带宽分阶段会计防空洞撒酒疯但是";var qswhSpell=["a",0,"ai",2,"an",15,"ang",24,"ao",27,"ba",36,"bai",54,"ban",62,"bang",77,"bao",89,"bei",106,"ben",121,"beng",125,"bi",131,"bian",155,"biao",167,"bie",171,"bin",175,"bing",181,"bo",190,"bu",211,"ca",220,"cai",221,"can",232,"cang",239,"cao",244,"ce",249,"ceng",254,"cha",256,"chai",267,"chan",270,"chang",280,"chao",293,"che",302,"chen",308,"cheng",318,"chi",333,"chong",349,"chou",354,"chu",366,"chuai",382,"chuan",383,"chuang",390,"chui",396,"chun",401,"chuo",408,"ci",410,"cong",422,"cou",428,"cu",429,"cuan",433,"cui",436,"cun",444,"cuo",447,"da",453,"dai",459,"dan",471,"dang",486,"dao",491,"de",503,"deng",506,"di",513,"dian",532,"diao",548,"die",557,"ding",564,"diu",573,"dong",574,"dou",584,"du",591,"duan",606,"dui",612,"dun",616,"duo",625,"e",637,"en",650,"er",651,"fa",659,"fan",667,"fang",684,"fei",695,"fen",707,"feng",722,"fo",737,"fou",738,"fu",739,"ga",784,"gai",786,"gan",792,"gang",803,"gao",812,"ge",822,"gei",839,"gen",840,"geng",842,"gong",849,"gou",864,"gu",873,"gua",891,"guai",897,"guan",900,"guang",911,"gui",914,"gun",930,"guo",933,"ha",939,"hai",940,"han",947,"hang",966,"hao",969,"he",978,"hei",996,"hen",998,"heng",1002,"hong",1007,"hou",1016,"hu",1023,"hua",1041,"huai",1050,"huan",1055,"huang",1069,"hui",1083,"hun",1104,"huo",1110,"ji",1120,"jia",1173,"jian",1190,"jiang",1230,"jiao",1243,"jie",1271,"jin",1298,"jing",1318,"jiong",1343,"jiu",1345,"ju",1362,"juan",1387,"jue",1394,"jun",1404,"ka",1415,"kai",1419,"kan",1424,"kang",1430,"kao",1437,"ke",1441,"ken",1456,"keng",1460,"kong",1462,"kou",1466,"ku",1470,"kua",1477,"kuai",1482,"kuan",1486,"kuang",1488,"kui",1496,"kun",1507,"kuo",1511,"la",1515,"lai",1522,"lan",1525,"lang",1540,"lao",1547,"le",1556,"lei",1558,"leng",1569,"li",1572,"lia",1606,"lian",1607,"liang",1621,"liao",1632,"lie",1645,"lin",1650,"ling",1662,"liu",1676,"long",1687,"lou",1696,"lu",1702,"lv",1722,"luan",1736,"lue",1742,"lun",1744,"luo",1751,"ma",1763,"mai",1772,"man",1778,"mang",1787,"mao",1793,"me",1805,"mei",1806,"men",1822,"meng",1825,"mi",1833,"mian",1847,"miao",1856,"mie",1864,"min",1866,"ming",1872,"miu",1878,"mo",1879,"mou",1896,"mu",1899,"na",1914,"nai",1921,"nan",1926,"nang",1929,"nao",1930,"ne",1935,"nei",1936,"nen",1938,"neng",1939,"ni",1940,"nian",1951,"niang",1958,"niao",1960,"nie",1962,"nin",1969,"ning",1970,"niu",1976,"nong",1980,"nu",1984,"nv",1987,"nuan",1988,"nue",1989,"nuo",1991,"o",1995,"ou",1996,"pa",2003,"pai",2009,"pan",2015,"pang",2023,"pao",2028,"pei",2035,"pen",2044,"peng",2046,"pi",2060,"pian",2077,"piao",2081,"pie",2085,"pin",2087,"ping",2092,"po",2101,"pu",2110,"qi",2125,"qia",2161,"qian",2164,"qiang",2186,"qiao",2194,"qie",2209,"qin",2214,"qing",2225,"qiong",2238,"qiu",2240,"qu",2248,"quan",2261,"que",2272,"qun",2280,"ran",2282,"rang",2286,"rao",2291,"re",2294,"ren",2296,"reng",2306,"ri",2308,"rong",2309,"rou",2319,"ru",2322,"ruan",2332,"rui",2334,"run",2337,"ruo",2339,"sa",2341,"sai",2344,"san",2348,"sang",2352,"sao",2355,"se",2359,"sen",2362,"seng",2363,"sha",2364,"shai",2373,"shan",2375,"shang",2391,"shao",2399,"she",2410,"shen",2422,"sheng",2438,"shi",2449,"shou",2496,"shu",2506,"shua",2539,"shuai",2541,"shuan",2545,"shuang",2547,"shui",2550,"shun",2554,"shuo",2558,"si",2562,"song",2578,"sou",2586,"su",2589,"suan",2602,"sui",2605,"sun",2616,"suo",2619,"ta",2627,"tai",2636,"tan",2645,"tang",2663,"tao",2676,"te",2687,"teng",2688,"ti",2692,"tian",2707,"tiao",2715,"tie",2720,"ting",2723,"tong",2733,"tou",2746,"tu",2750,"tuan",2761,"tui",2763,"tun",2769,"tuo",2772,"wa",2783,"wai",2790,"wan",2792,"wang",2809,"wei",2819,"wen",2852,"weng",2862,"wo",2865,"wu",2874,"xi",2903,"xia",2938,"xian",2951,"xiang",2977,"xiao",2997,"xie",3015,"xin",3036,"xing",3046,"xiong",3061,"xiu",3068,"xu",3077,"xuan",3096,"xue",3106,"xun",3112,"ya",3126,"yan",3142,"yang",3175,"yao",3192,"ye",3207,"yi",3222,"yin",3275,"ying",3291,"yo",3309,"yong",3310,"you",3325,"yu",3346,"yuan",3390,"yue",3410,"yun",3420,"za",3432,"zai",3435,"zan",3442,"zang",3446,"zao",3449,"ze",3463,"zei",3467,"zen",3468,"zeng",3469,"zha",3473,"zhai",3487,"zhan",3493,"zhang",3510,"zhao",3525,"zhe",3535,"zhen",3545,"zheng",3561,"zhi",3576,"zhong",3619,"zhou",3630,"zhu",3644,"zhua",3670,"zhuai",3672,"zhuan",3673,"zhuang",3679,"zhui",3686,"zhun",3692,"zhuo",3694,"zi",3705,"zong",3720,"zou",3727,"zu",3731,"zuan",3739,"zui",3741,"zun",3745,"zuo",3747];function UrlEncode(str){ /* * 汉字转换成拼音 */ var i,c,p,q,ret="",strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%"; for(i=0;i<str.length;i++){ if(str.charCodeAt(i)>=0x4e00){ var p=strGB.indexOf(str.charAt(i)); if(p>=0){ q=p%94; p=(p-q)/94; ret+=("%"+(0xB0+p).toString(16)+"%"+(0xA1+q).toString(16)).toUpperCase(); } } else{ c=str.charAt(i); if(c==" ") ret+="+"; else if(strSpecial.indexOf(c)!=-1) ret+="%"+str.charCodeAt(i).toString(16); else ret+=c; } } return ret;}function getSpell(str,sp){ /* * 汉字转换成拼音 */ var i,c,t,p,ret=""; if(sp==null)sp=""; for(i=0;i<str.length;i++){ if(str.charCodeAt(i)>=0x4e00){ p=strGB.indexOf(str.charAt(i)); if(p>-1&&p<3755){ for(t=qswhSpell.length-1;t>0;t=t-2)if(qswhSpell[t]<=p)break; if(t>0)ret+=qswhSpell[t-1]+sp; } } } return ret.substr(0,ret.length-sp.length);}</script><input value="秋水无恨和阿良" id="source" name="source"><input type="button" value="汉字转拼音" onclick="trans()"><textarea id="result" cols="80" rows="10">d</textarea><script language="javascript">function trans(){ document.getElementById("result").value="结果如下:\n"; //document.getElementById("result").value+=UrlEncode(document.getElementById("source").value) + "\n"; document.getElementById("result").value+=getSpell(document.getElementById("source").value) + "\n"; document.getElementById("result").value+=getSpell(document.getElementById("source").value,"'");}</script></body></html> </BODY></HTML> 求正则表达式 javascript常用的有那些功能? 刷新 如何弹出一个别不轨则窗体? 如何遍历所有打开窗口的NAME! setInterval小问题(这分容易拿!) 这里文字的大小能得到么?有正解必给分. iframe问题 新人。。关于JS读写cookie的问题,在火狐下和IE8下版本都能正常读写,在360流浪器却不行,大神们,帮帮忙唉。。。 上传图片到sql2005数据库,图片大小限制问题 ajax post提交疑问 checkbox disabled 状态下 勾的颜色如何调节
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title> <script type="text/javascript">
var $PinYin = new Object();
var $ = function(o) { if (o) { return document.getElementById(o); } }
$PinYin.ds = {};
$PinYin.change = function(ch) { for (var n in $PinYin.ds) { if ($PinYin.ds[n].indexOf(ch) != -1) return n; } return ch; }
$PinYin.search = function(val) {
var py = "";
for (var i = 0; i < val.length; i++) {
var ch = val.charAt(i);
if (/^[\u4E00-\u9FA5]$/.test(ch)) ch = $PinYin.change(ch);
py += ch
}
return py;
}
$PinYin.searchCap = function(val) {
var py = "";
for (var i = 0; i < val.length; i++) {
var ch = val.charAt(i);
if (/^[\u4E00-\u9FA5]$/.test(ch)) ch = $PinYin.change(ch);
py += ch.charAt(0);
}
//return py;
$('en').value = py;
}
</script></head>
<body>
<input type="text" id="ch" onblur="$PinYin.searchCap(this.value)"/>
<input type="text" id="en" />
</body>
</html>
http://blog.csdn.net/ad0128/archive/2010/06/08/5655795.aspx
<script>
var hanzi = "中美俄英法";
var zimu = "zmeyf";
function getZiMu(str){
return zimu.charAt(hanzi.indexOf(str));
}
alert(getZiMu("美"));
</script>
方式很多,从最笨到较好一些的顺序开始列一些:1.字库查找法:把所有字和其对应的拼音放入一或两个数组中,依次查找.2.关键字库对比法:汉字的排列基本是按照拼音的顺序排的,因此,可以分成多个拼音区间(如BA,BAI,BAN这样的段)的代表汉字摘出来,和其对应的拼音,放入一或两个数组中,用你要处理的汉字去进行比较,判断在哪个区间里.3.和上面类似的,有用汉字内码代替汉字字符来存储的.4.针对楼主的需求,你只需要声母而已,因此,需要摘取的关键字库是很少的.用第2种方法就可以了.
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<script type="text/javascript">
var strGB="张飞会计分阶段会计飞带宽分阶段会计防空洞撒酒疯但是";var qswhSpell=["a",0,"ai",2,"an",15,"ang",24,"ao",27,"ba",36,"bai",54,"ban",62,"bang",77,"bao",89,"bei",106,"ben",121,"beng",125,"bi",131,"bian",155,"biao",167,"bie",171,"bin",175,"bing",181,"bo",190,"bu",211,"ca",220,"cai",221,"can",232,"cang",239,"cao",244,"ce",249,"ceng",254,"cha",256,"chai",267,"chan",270,"chang",280,"chao",293,"che",302,"chen",308,"cheng",318,"chi",333,"chong",349,"chou",354,"chu",366,"chuai",382,"chuan",383,"chuang",390,"chui",396,"chun",401,"chuo",408,"ci",410,"cong",422,"cou",428,"cu",429,"cuan",433,"cui",436,"cun",444,"cuo",447,"da",453,"dai",459,"dan",471,"dang",486,"dao",491,"de",503,"deng",506,"di",513,"dian",532,"diao",548,"die",557,"ding",564,"diu",573,"dong",574,"dou",584,"du",591,"duan",606,"dui",612,"dun",616,"duo",625,"e",637,"en",650,"er",651,"fa",659,"fan",667,"fang",684,"fei",695,"fen",707,"feng",722,"fo",737,"fou",738,"fu",739,"ga",784,"gai",786,"gan",792,"gang",803,"gao",812,"ge",822,"gei",839,"gen",840,"geng",842,"gong",849,"gou",864,"gu",873,"gua",891,"guai",897,"guan",900,"guang",911,"gui",914,"gun",930,"guo",933,"ha",939,"hai",940,"han",947,"hang",966,"hao",969,"he",978,"hei",996,"hen",998,"heng",1002,"hong",1007,"hou",1016,"hu",1023,"hua",1041,"huai",1050,"huan",1055,"huang",1069,"hui",1083,"hun",1104,"huo",1110,"ji",1120,"jia",1173,"jian",1190,"jiang",1230,"jiao",1243,"jie",1271,"jin",1298,"jing",1318,"jiong",1343,"jiu",1345,"ju",1362,"juan",1387,"jue",1394,"jun",1404,"ka",1415,"kai",1419,"kan",1424,"kang",1430,"kao",1437,"ke",1441,"ken",1456,"keng",1460,"kong",1462,"kou",1466,"ku",1470,"kua",1477,"kuai",1482,"kuan",1486,"kuang",1488,"kui",1496,"kun",1507,"kuo",1511,"la",1515,"lai",1522,"lan",1525,"lang",1540,"lao",1547,"le",1556,"lei",1558,"leng",1569,"li",1572,"lia",1606,"lian",1607,"liang",1621,"liao",1632,"lie",1645,"lin",1650,"ling",1662,"liu",1676,"long",1687,"lou",1696,"lu",1702,"lv",1722,"luan",1736,"lue",1742,"lun",1744,"luo",1751,"ma",1763,"mai",1772,"man",1778,"mang",1787,"mao",1793,"me",1805,"mei",1806,"men",1822,"meng",1825,"mi",1833,"mian",1847,"miao",1856,"mie",1864,"min",1866,"ming",1872,"miu",1878,"mo",1879,"mou",1896,"mu",1899,"na",1914,"nai",1921,"nan",1926,"nang",1929,"nao",1930,"ne",1935,"nei",1936,"nen",1938,"neng",1939,"ni",1940,"nian",1951,"niang",1958,"niao",1960,"nie",1962,"nin",1969,"ning",1970,"niu",1976,"nong",1980,"nu",1984,"nv",1987,"nuan",1988,"nue",1989,"nuo",1991,"o",1995,"ou",1996,"pa",2003,"pai",2009,"pan",2015,"pang",2023,"pao",2028,"pei",2035,"pen",2044,"peng",2046,"pi",2060,"pian",2077,"piao",2081,"pie",2085,"pin",2087,"ping",2092,"po",2101,"pu",2110,"qi",2125,"qia",2161,"qian",2164,"qiang",2186,"qiao",2194,"qie",2209,"qin",2214,"qing",2225,"qiong",2238,"qiu",2240,"qu",2248,"quan",2261,"que",2272,"qun",2280,"ran",2282,"rang",2286,"rao",2291,"re",2294,"ren",2296,"reng",2306,"ri",2308,"rong",2309,"rou",2319,"ru",2322,"ruan",2332,"rui",2334,"run",2337,"ruo",2339,"sa",2341,"sai",2344,"san",2348,"sang",2352,"sao",2355,"se",2359,"sen",2362,"seng",2363,"sha",2364,"shai",2373,"shan",2375,"shang",2391,"shao",2399,"she",2410,"shen",2422,"sheng",2438,"shi",2449,"shou",2496,"shu",2506,"shua",2539,"shuai",2541,"shuan",2545,"shuang",2547,"shui",2550,"shun",2554,"shuo",2558,"si",2562,"song",2578,"sou",2586,"su",2589,"suan",2602,"sui",2605,"sun",2616,"suo",2619,"ta",2627,"tai",2636,"tan",2645,"tang",2663,"tao",2676,"te",2687,"teng",2688,"ti",2692,"tian",2707,"tiao",2715,"tie",2720,"ting",2723,"tong",2733,"tou",2746,"tu",2750,"tuan",2761,"tui",2763,"tun",2769,"tuo",2772,"wa",2783,"wai",2790,"wan",2792,"wang",2809,"wei",2819,"wen",2852,"weng",2862,"wo",2865,"wu",2874,"xi",2903,"xia",2938,"xian",2951,"xiang",2977,"xiao",2997,"xie",3015,"xin",3036,"xing",3046,"xiong",3061,"xiu",3068,"xu",3077,"xuan",3096,"xue",3106,"xun",3112,"ya",3126,"yan",3142,"yang",3175,"yao",3192,"ye",3207,"yi",3222,"yin",3275,"ying",3291,"yo",3309,"yong",3310,"you",3325,"yu",3346,"yuan",3390,"yue",3410,"yun",3420,"za",3432,"zai",3435,"zan",3442,"zang",3446,"zao",3449,"ze",3463,"zei",3467,"zen",3468,"zeng",3469,"zha",3473,"zhai",3487,"zhan",3493,"zhang",3510,"zhao",3525,"zhe",3535,"zhen",3545,"zheng",3561,"zhi",3576,"zhong",3619,"zhou",3630,"zhu",3644,"zhua",3670,"zhuai",3672,"zhuan",3673,"zhuang",3679,"zhui",3686,"zhun",3692,"zhuo",3694,"zi",3705,"zong",3720,"zou",3727,"zu",3731,"zuan",3739,"zui",3741,"zun",3745,"zuo",3747];function UrlEncode(str){
/*
* 汉字转换成拼音
*/
var i,c,p,q,ret="",strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";
for(i=0;i<str.length;i++){
if(str.charCodeAt(i)>=0x4e00){
var p=strGB.indexOf(str.charAt(i));
if(p>=0){
q=p%94;
p=(p-q)/94;
ret+=("%"+(0xB0+p).toString(16)+"%"+(0xA1+q).toString(16)).toUpperCase();
}
}
else{
c=str.charAt(i);
if(c==" ")
ret+="+";
else if(strSpecial.indexOf(c)!=-1)
ret+="%"+str.charCodeAt(i).toString(16);
else
ret+=c;
}
}
return ret;
}function getSpell(str,sp){
/*
* 汉字转换成拼音
*/
var i,c,t,p,ret="";
if(sp==null)sp="";
for(i=0;i<str.length;i++){
if(str.charCodeAt(i)>=0x4e00){
p=strGB.indexOf(str.charAt(i));
if(p>-1&&p<3755){
for(t=qswhSpell.length-1;t>0;t=t-2)if(qswhSpell[t]<=p)break;
if(t>0)ret+=qswhSpell[t-1]+sp;
}
}
}
return ret.substr(0,ret.length-sp.length);
}
</script>
<input value="秋水无恨和阿良" id="source" name="source">
<input type="button" value="汉字转拼音" onclick="trans()">
<textarea id="result" cols="80" rows="10">d</textarea>
<script language="javascript">
function trans(){
document.getElementById("result").value="结果如下:\n";
//document.getElementById("result").value+=UrlEncode(document.getElementById("source").value) + "\n";
document.getElementById("result").value+=getSpell(document.getElementById("source").value) + "\n";
document.getElementById("result").value+=getSpell(document.getElementById("source").value,"'");
}
</script>
</body>
</html> </BODY>
</HTML>