js汉字转拼音实现代码
代码示例:
/**
* 中文字符串转化为拼音
* alert(convertToPinyinLower("你好啊"))
*/
function hash(_key,_value)
{
= _key // 拼音*/
e = _value // ascii码*/
}
// javascript 的自定义对象,用于存放汉字拼音数据字典*/
function dictionary()
{
s = []
= function(_key,_value)
{
s[th] = new hash(_key,_value)
}
}
//汉字拼音的数据字典-共396个-通过组合声母和韵母*/
var d = new dictionary()
("a",-20319)
("ai",-20317)
("an",-20304)
("ang",-20295)
("ao",-20292)
("ba",-20283)
("bai",-20265)
("ban",-20257)
("bang",-20242)
("bao",-20230)
("bei",-20051)
("ben",-20036)
("beng",-20032)
("bi",-20026)
("bian",-20002)
("biao",-19990)
("bie",-19986)
("bin",-19982)
("bing",-19976)
("bo",-19805)
("bu",-19784)
("ca",-19775)
("cai",-19774)
("can",-19763)
("cang",-19756)
("cao",-19751)
("ce",-19746)
("ceng",-19741)
("cha",-19739)
("chai",-19728)
("chan",-19725)
("chang",-19715)
("chao",-19540)
("che",-19531)
("chen",-19525)
("cheng",-19515)
("chi",-19500)
("chong",-19484)
("chou",-19479)
("chu",-19467)
("chuai",-19289)
("chuan",-19288)
("chuang",-19281)
("chui",-19275)
("chun",-19270)
("chuo",-19263)
("ci",-19261)
("cong",-19249)
("cou",-19243)
("cu",-19242)
("cuan",-19238)
("cui",-19235)
("cun",-19227)
("cuo",-19224)
("da",-19218)
("dai",-19212)
("dan",-19038)
("dang",-19023)
("dao",-19018)
("de",-19006)
("deng",-19003)
("di",-18996)
("dian",-18977)
("diao",-18961)
("die",-18952)
("ding",-18783)
("diu",-18774)
("dong",-18773)
("dou",-18763)
("du",-18756)
("duan",-18741)
("dui",-18735)
("dun",-18731)
("duo",-18722)
("e",-18710)
("en",-18697)
("er",-18696)
("fa",-18526)
//通过查找字典得到与ascii码对应的拼音*/
function getKey(code)
{
if ((code>0)&&(code<160))
return CharCode(code)// CharCode 就是把ascii码转成字符*/
else if ((code<-20319)||(code>-10247))
return ""
else
for (var i=th-1i>=0i--)
{
if (s[i]e<=code)
break
}
return s[i]
}
//转为小写*/
function convertToPinyinLower(str)
{
var result = ""
for (var i=1i<=thi++)
{
//执行指定语言的脚本代码:
//Mid(str,i,1)-指从str的第i个字符开始取长度为1的字符串
//asc(char)-指获取字符的acsii码
execScript("ascCode=asc(mid("" + str + ""," + i + ",1))", "vbscript")
result = result + getKey(ascCode)
}
return werCase()
}
//转为大写*/
function convertToPinyinUpper(str)
{
var result = ""
for (var i=1i<=thi++)
{
//执行指定语言的脚本代码:
//Mid(str,i,1)-指从str的第i个字符开始取长度为1的字符串
//asc(char)-指获取字符的acsii码
execScript("ascCode=asc(mid("" + str + ""," + i + ",1))", "vbscript")
result = result + getKey(ascCode)
}
return perCase()
}
//判断中英文
function isChinese(str){
var entryVal=str
var entryLen=th
var cnChar=h(/[^x00-x80]/g)
if(cnChar!=null&&cnCh
th>0) return true
else return false
}