posts - 5, comments - 2, trackbacks - 0, articles - 5
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

网页上的拼音码生成

Posted on 2009-12-04 09:54 Just Do It 阅读(1775) 评论(0)  编辑  收藏
    在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 (""+== "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 (""+== "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

只有注册用户登录后才能发表评论。


网站导航: