posts - 241,  comments - 116,  trackbacks - 0

              規律:半角空格的 charCode 為 32, 全角空格為 12288. 其他半角字符 ( 33 – 126 ) 與全 角 ( 65281 – 65374 ) 的對應關系是:均相差 65248.
          代碼:

          var hash = {’32 : ’\u3000’};
          // 半角轉全角
          function sbc2dbc(str) {
             
          var ret = [], i = 0, len = str.length, code, chr;
             
          for (; i < len; ++i) {
                  code
          = str.charCodeAt(i);
                  chr
          = hash[code];
                 
          if (!chr && code > 31 && code < 127) {
                      chr
          = hash[code] = String.fromCharCode(code + 65248);
                 
          }
                  ret
          [i] = chr ? chr : str.charAt(i);
             
          }
             
          return ret.join(’’);
          }

          同理:

          var hash = {’12288 :  ’};
          // 全角轉半角
          function dbc2sbc(str) {
             
          var ret = [], i = 0, len = str.length, code, chr;
             
          for (; i < len; ++i) {
                  code
          = str.charCodeAt(i);
                  chr
          = hash[code];
                 
          if (!chr && code > 65280 && code < 65375) {
                      chr
          = hash[code] = String.fromCharCode(code - 65248);
                 
          }
                  ret
          [i] = chr ? chr : str.charAt(i);
             
          }
             
          return ret.join(’’);
          }

          上面的代碼會將 33 - 126 中間的符號也轉換。很多時候,這并不是 我們需要的(比如將 @ 轉換為 @)。下面的代碼侵入性更小:

          var hash = {};
          // 半角轉全角。僅轉換 [0-9a-zA-Z]
          function sbc2dbc_w(str) {
             
          var ret = [], i = 0, len = str.length, code, chr;
             
          for (; i < len; ++i) {
                  code
          = str.charCodeAt(i);
                  chr
          = hash[code];
                 
          if (!chr &&
                     
          (47 < code && code < 58 ||
                       
          64 < code && code < 91 ||
                       
          96 < code && code < 123)) {
                      chr
          = hash[code] = String.fromCharCode(code + 65248);
                 
          }
                  ret
          [i] = chr ? chr : str.charAt(i);
             
          }
             
          return ret.join(’’);
          }

          求一個JS實現無縫滾動的代碼~~~~

          IE與FireFox下用JS觸發鼠標點擊事件有什么不同?

          求助,如何使用腳本編碼器Script Encoder對JS進行編碼加密?

          怎么用JS獲取獲取瀏覽器地址欄參數?

          請問怎么用JS發送郵件?


          posted on 2010-03-14 15:09 墻頭草 閱讀(289) 評論(0)  編輯  收藏

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


          網站導航:
           
          人人游戲網 軟件開發網 貨運專家
          主站蜘蛛池模板: 高雄市| 成武县| 汾西县| 新宾| 县级市| 保德县| 亳州市| 永顺县| 旬邑县| 吴忠市| 怀来县| 报价| 东乌| 宜良县| 浏阳市| 西乡县| 湖南省| 蒙阴县| 舞钢市| 津南区| 南岸区| 郧西县| 化德县| 亚东县| 奉化市| 兴隆县| 尼木县| 济宁市| 平罗县| 莱州市| 石阡县| 天镇县| 华容县| 永昌县| 高邮市| 潢川县| 汉寿县| 漯河市| 广饶县| 曲阜市| 扶余县|