JavaScript 实现汉字转拼音 方案一

JavaScript 实现汉字转拼音 方案一

大家好,我是讯享网,很高兴认识大家。

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){
 /*qiushuiwuhen(2002-9-16)/
 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){
 /*qiushuiwuhen(2002-9-16)/
 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="秋水无恨 <>/#%{}|^~[]`&?+Abc" name=source>
<input type=button value=显示 οnclick=trans()>
<div id=result></div>
<input name=demo size=30 value="实用,编程,技术,实战,精通,教程">
<input type=button οnclick=sort(demo.value) value=排序>
<script language=javascript>
function trans(){
 result.innerHTML="结果如下:"
 result.innerHTML+='<br>UrlEncode(source.value):<br>'+UrlEncode(source.value)
 result.innerHTML+='<br>getSpell(source.value):<br>'+getSpell(source.value)
 result.innerHTML+='<br>getSpell(source.value,"/'"):<br>'+getSpell(source.value,"'")
}

function spellSort(a,b){
var p=strGB.indexOf(a.substr(0,1))
var q=strGB.indexOf(b.substr(0,1))
document.write(p,"-",q,"=",p-q,"<br>");
return p-q;
}

 

function spellSort(a,b){
/*(qiushuiwuhen 2002-9-17)/
var i,p,q,l=strGB.length;
p=0;for(i=a.length;i>0;i--)p=p/l+strGB.indexOf(a.substr(i-1,1))
q=0;for(i=b.length;i>0;i--)q=q/l+strGB.indexOf(b.substr(i-1,1))
return p-q;
}
function sort(str){
 var arr=str.split(","),arr2=[];
 arr.sort(spellSort);
 alert(arr)
}
</script>
<br>输入名字的首字缩写即可找到,如张三火(zsh)
<select name="username" οnkeydοwn=spellList() οnchange=alert(this[selectedIndex].sp)>
     <option value="1">张三</option>
     <option value="2">张三火</option>
     <option value="3">李四</option>
     <option value="4">李四水</option>
</select>

<script>
var sel="",timer=null;
function spellList(){
/(qiushuiwuhen 2002-9-20)*/
       with(window.event){
          with(srcElement){
              if(keyCode<48)return;
              if(keyCode>95)keyCode-=48
              sel+=String.fromCharCode(keyCode)
              window.status=sel
              for(i=0;i<length;i++){
               if(!options[i].sp){
                var tmp="",arr=getSpell(options[i].text,"'").split("'")
                for(var j=0;j<arr.length;j++)tmp+=arr[j].substr(0,1).toUpperCase();
                options[i].sp=tmp;
               }
               if(options[i].sp.indexOf(sel)==0){selectedIndex=i;break;}
              }
          }
          returnValue=false;
          clearTimeout(timer)
          timer=setTimeout("sel=''",500);
     }
}
</script>

 

小讯
上一篇 2025-02-16 16:21
下一篇 2025-03-08 10:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42405.html