打个比方吧,中国这个词语,我要用js获取词语中第一个词的首字母拼音也就是“Z”,
这个该怎么做?有人做过类似的吗?

解决方案 »

  1.   

    帮你找了一段。受篇幅限制,$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>
      

  2.   

    还是太长了。看这里吧
    http://blog.csdn.net/ad0128/archive/2010/06/08/5655795.aspx
      

  3.   

    说简单点,就是需要做字库,给个简单的例子
    <script>
    var hanzi = "中美俄英法";
    var zimu = "zmeyf";
    function getZiMu(str){
    return zimu.charAt(hanzi.indexOf(str));
    }
    alert(getZiMu("美"));
    </script>
      

  4.   

    这个问题转化为取一个汉字的拼音.你可以通过取字串首字符来取首个汉字,得到其拼音后,再取其字符就是首个声母.
    方式很多,从最笨到较好一些的顺序开始列一些:1.字库查找法:把所有字和其对应的拼音放入一或两个数组中,依次查找.2.关键字库对比法:汉字的排列基本是按照拼音的顺序排的,因此,可以分成多个拼音区间(如BA,BAI,BAN这样的段)的代表汉字摘出来,和其对应的拼音,放入一或两个数组中,用你要处理的汉字去进行比较,判断在哪个区间里.3.和上面类似的,有用汉字内码代替汉字字符来存储的.4.针对楼主的需求,你只需要声母而已,因此,需要摘取的关键字库是很少的.用第2种方法就可以了.
      

  5.   


    <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>