今天在网上发现一个汉字转拼音的东东,觉得不错,不敢独享,特共享出来。或许坛子里面有此类东西了,我好像没有找到。希望对大家有点用处!在IE下测试通过。
代码:
- HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用JS实现汉字转拼音</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="Author" content="hi.baidu.com/samaria_g"/> <body> <table> <tr> <td> <table> <thead> <tr> <td align="center"> <strong>汉字转拼音</strong> </td> </tr> </thead> <tfoot> <tr> <td align="center"> © No Copyright hi.baidu.com/samaria_g </td> </tr> </tfoot> <tbody> <tr> <td> <textarea rows="12" cols="100" id="test"> 请在此输入简体汉字 </textarea> </td> </tr> <tr> <td align="center"> <input type="button" value="转换" onclick="javascript:btnClick()"/> <input type="button" value="重置" onclick="javascript:clrAll()"/><hr> <textarea id="tt" rows="20" cols="100"> </textarea> </td> </tr> </tbody> </table> </td> <td> 此工具可以把简体汉字以完全拼音的模式输出,输入内容中包含的繁体字、英文字母、标点等将以其原形后加空格输出。 <br> <p> 注:此工具仅在IE中测试通过。 </p> <p style=" text-align:right;"> JS设计:<a href="http://hi.baidu.com/heihei1314/blog/item/d35e942bf78a78f2e6cd40bf.html">heihei1314</a> <br> 界面及优化:<a href="http://hi.baidu.com/samaria_g/blog/item/4e032afe007961385d600839.html">Samaria</a> </p> </td> </tr> </table> </body> </html> <script language="javascript"> function clrAll() { window.location.reload(); }; function btnClick() { var arg = document.getElementById("test").value; var msg = isChinese(arg); if (!msg) { alert("请输入需要转换的内容!"); return; } var str = toPinyinOnly(arg); document.getElementById("tt").value = str; } function isChinese(str) { if ("" == str) { return false; } return true; } //进行汉字转换 function pinyin(chars){ var spellArray = new Array(); var tx = chars execScript("ascCode=hex(asc(\""+chars+"\"))", "vbscript"); ascCode = eval("0x"+ascCode); if(event.keyCode==13) event.keyCode=9; else if(!chars.charCodeAt(0) || chars.charCodeAt(0) < 1328){ return tx; } else if (!(ascCode > 0xB0A0 && ascCode < 0xD7FC)){ return tx; } else { for (var i = ascCode; !spell[i] && i > 0;) i--; return spell[i] } } function toPinyinOnly(str) { var pStr = "" for (var i = 0; i < str.length; i++) { if (str.charAt(i) == "\r") {//重要!解决回车输入的Bug!! pStr += "\r"; i++; } else { pStr += pinyin(str.charAt(i)) + " "; } } return pStr; } var spell = 见下面的帖子,这个太长,一次发不出来 </script>