在C/S程序中,我們通常會把漢字的拼音簡碼記錄在一個表中,然后編寫一個工具函數來生成一段文字的拼音碼。而在WEB頁面上,文字的簡碼存儲在數據庫表中的極不方便,使用AJAX技術也很繁瑣。那么如果能把文字的簡碼直接存儲在js里,在客戶端實時生成拼音碼就比較方便了。
在javascript中,我們可以用如下方式生成一個MAP樣的對象:
var charsCode = {"啊":"A","波":"B",...};
于是得到某個文字的拼音簡碼就很簡單了:charsCode["啊"]即可。
顯然,文字的簡碼在數據表中有,我們可以用簡單的sql語句就生成上面定義簡碼MAP的JS代碼,工作量最大的那部分事情就搞定了。
接下來只需要定義工具函數即可:
// 獲取每個包括字符的拼音簡碼。
function getCharsCode(str){
str = str.toUpperCase();
var len = str.length;
var c, result="", t;
for(i=0; i<len; i++){
c = str.substr(i,1);
t = mCharsCode[c];
if (""+t == "undefined") t = "";
result += t;
}
return result;
}

// 對于英文單詞,僅取首字母
function getWordsCode(str){
str = str.toUpperCase();
str = str.replace(/([A-Z])[A-Z]*/g, "$1");
var len = str.length;
var c, result="", t;
for(i=0; i<len; i++){
c = str.substr(i,1);
t = mCharsCode[c];
if (""+t == "undefined") t = "";
result += t;
}
return result;
}
那么在WEB頁面中,我們只要引入相應的js文件,就可以方便的調用了,舉例如下:
<html>
<head>
<script language="javascript" src="charscode.js"></script>
</head>
<body style="font-size:12px">
<form>
輸入內容:<input type="text" onkeyup="pym.innerHTML = getCharsCode(this.value);" /> <br />
拼 音 碼:<span id="pym"></span>
</form>
</body>
</html>
以下是已經包含6千多漢字及其它字符以及工具函數的js與html文件:
/Files/justdoit/charcode.rar
在javascript中,我們可以用如下方式生成一個MAP樣的對象:
var charsCode = {"啊":"A","波":"B",...};
于是得到某個文字的拼音簡碼就很簡單了:charsCode["啊"]即可。
顯然,文字的簡碼在數據表中有,我們可以用簡單的sql語句就生成上面定義簡碼MAP的JS代碼,工作量最大的那部分事情就搞定了。
接下來只需要定義工具函數即可:







































/Files/justdoit/charcode.rar