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