posts - 5, comments - 2, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          網(wǎng)頁上的拼音碼生成

          Posted on 2009-12-04 09:54 Just Do It 閱讀(1783) 評論(0)  編輯  收藏
              在C/S程序中,我們通常會把漢字的拼音簡碼記錄在一個表中,然后編寫一個工具函數(shù)來生成一段文字的拼音碼。而在WEB頁面上,文字的簡碼存儲在數(shù)據(jù)庫表中的極不方便,使用AJAX技術(shù)也很繁瑣。那么如果能把文字的簡碼直接存儲在js里,在客戶端實時生成拼音碼就比較方便了。
              在javascript中,我們可以用如下方式生成一個MAP樣的對象:
              var charsCode = {"啊":"A","波":"B",...};
              于是得到某個文字的拼音簡碼就很簡單了:charsCode["啊"]即可。
              顯然,文字的簡碼在數(shù)據(jù)表中有,我們可以用簡單的sql語句就生成上面定義簡碼MAP的JS代碼,工作量最大的那部分事情就搞定了。
              接下來只需要定義工具函數(shù)即可:
          // 獲取每個包括字符的拼音簡碼。
          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頁面中,我們只要引入相應(yīng)的js文件,就可以方便的調(diào)用了,舉例如下:
          <html>
              
          <head>
                  
          <script language="javascript" src="charscode.js"></script>
              
          </head>
              
          <body style="font-size:12px">
                  
          <form>
                      輸入內(nèi)容:
          <input type="text" onkeyup="pym.innerHTML = getCharsCode(this.value);" /> <br />
                      拼 音 碼:
          <span id="pym"></span>
                  
          </form>
              
          </body>
          </html>
              以下是已經(jīng)包含6千多漢字及其它字符以及工具函數(shù)的js與html文件:
          /Files/justdoit/charcode.rar

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 台南市| 新竹县| 凤凰县| 湘潭县| 黄冈市| 松潘县| 商都县| 资兴市| 衡水市| 达日县| 吴忠市| 武乡县| 南川市| 绥阳县| 攀枝花市| 新疆| 阿鲁科尔沁旗| 武川县| 丰城市| 金门县| 东港市| 邢台市| 余庆县| 新野县| 东乌珠穆沁旗| 奉化市| 旬阳县| 巨野县| 抚宁县| 招远市| 理塘县| 平潭县| 福泉市| 湘西| 施秉县| 扎鲁特旗| 浦北县| 中卫市| 星座| 东台市| 辽阳市|