此前项目中有一个 中文转拼音 的需求,于是整理了一下实现方法。
话不多说( Github Demo )
其实在中文转拼音的过程中,比较麻烦的在于 多音字 和 生僻字 的实现,我想到的解决思路是:
然后修改上述 convert2Pinyin() 和 searchPinYin() 方法,把符合规则的字符返回一个数组,然后用 排列组合 的方式列出所有可能。
该 仓库 除了 拼音转中文 之外,还有其他实用方法, 麻烦移步查看 。如有更好的实现方法,欢迎留言,谢谢!
首先:需要一个汉字拼音对应的表,可以用json格式,也可以用类例如:{'hao':'\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u8585\u55e5\u5686\u6fe0\u704f\u660a\u7693\u98a2\u869d'}里面的"\u58d5"是汉字的代码
然后通过查找你的汉字和里面的匹配,找到前面的拼音,原理是这样的,但是在匹配的时候怎么快,这个在网上有人写好的插件,也可以自己写,一般情况是:遍历里面的所有的,直到找到或者遍历完成,当然汉字的变慢在你的范围内。还有另外的,就是将汉字编码是有顺序大小的,可以排好序,然后再找前面的英文。
JavaScript 汉字转拼音,我也需要这个,在网上找了不少,有的只能在ie里边实现,找了很久,最后找到个可以在ie8. firefox ,chrome都行的。http://hi.baidu.com/lukin/blog/item/07ec768b5fd15216c9fc7aa7.html 这个百度空间的这个,我用上了,蛮好用的,分享出来,看看是否能帮助你。
<!doctype html>
<html>
<head>
<script src="pinyin.js" type="text/javascript"></script>
<style>
div{
border:1px solid black
padding:5px
margin:2px
}
</style>
</head>
<body>
<select id='sel'>
<option value="1">1</option>
<option value="2">2</option>
</select>
<script language="javascript">
alert(CC2PY("你好"))
</script>
</body>
</html>
这样简单的可以测试。。。 我不需要首字母大写,我已经调好了,在使用中,我们可以多多交流。