程式碼示例:
/**
* 中文字串轉化為拼音
* 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-1;i>=0;i--)
if (d.items[i].value<=code)
break;
return d.items[i].key;
//轉為小寫*/
function convertToPinyinLower(str)
var result = "" ;
for (var i=1;i<=str.length;i++)
//執行指定語言的指令碼程式碼:
//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)
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;
程式碼示例:
/**
* 中文字串轉化為拼音
* 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-1;i>=0;i--)
{
if (d.items[i].value<=code)
break;
}
return d.items[i].key;
}
//轉為小寫*/
function convertToPinyinLower(str)
{
var result = "" ;
for (var i=1;i<=str.length;i++)
{
//執行指定語言的指令碼程式碼:
//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=1;i<=str.length;i++)
{
//執行指定語言的指令碼程式碼:
//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;
}