Show
Ignore:
Timestamp:
04/08/08 20:15:07 (5 years ago)
Author:
syuki
Message:

ieでカナからひらがなに変換した時に文字が欠けるのを修正

Location:
lang/javascript/romkan-mini
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/romkan-mini/romkan-mini-cmp.js

    r6955 r9138  
    11// (c)2007 gyuque  Distributed under the MIT-style license. 
    2 var RomKan={KANA_TBL:"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをぁぃぅぇぉゃゅょっがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽんヴゎ",K:function(i){return this.KANA_TBL.charAt(i)},_aa:"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲァィゥェォャュョッガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポンヴヮ",LOOKUP:{6409:2,1509397:3,5909:3,769:6,789:8,4373:8,783:10,777:12,1247241:12,773:14,198665:17,1315605:18,1557:28,6401:36,6421:37,6405:13058,6415:38,4609:39,4617:40,4629:41,4613:42,4623:43,5889:44,5897:12547,5893:13059,5903:47,3073:48,6145:48,3081:49,6153:49,792841:49,1579273:49,3093:50,6165:50,3077:51,6149:51,792837:51,1579269:51,3087:52,6159:52,792833:53,1579265:53,792853:54,1579285:54,792847:55,1579279:55,792321:84,1578753:84,791573:56,1578005:56,3598:82,1793:57,1801:58,1813:59,1797:60,1807:61,6657:62,6665:63,2569:63,6677:64,6661:65,6671:66,1025:67,1033:68,1045:69,1029:70,1039:71,513:72,521:73,533:74,517:75,527:76,4097:77,4105:78,4117:79,4101:80,4111:81,4353:12296,4361:12552,4357:13064,4367:13320,726785:12296,1247233:13580,1247253:13836,1247237:13068,1247247:14092,198657:13585,198677:13841,198661:13073,198671:14097,1312769:13587,1312777:12563,1312789:13843,1312773:13075,1312783:14099,1315585:12306,1315593:12562,1315589:13074,1315599:13330,1537:12316,1545:12572,1541:13084,1551:13340,2561:13631,2581:13887,2565:13119,2575:14143,1513737:45,1513733:46,1509377:12291,1509385:12547,1509381:13059,1509391:13315,264193:13638,264201:12614,264213:13894,264197:13126,264207:14150,5633:12371,5641:12627,5653:83,5637:13139,5647:13395},_ba:[1,9,21,5,15],_ca:[53,49,54,51,55],_da:[48,49,50,51,52],_ea:function(c,k,T,c2,ia){c=(c<<16)|(c2<<8);for(var i=0;i<5;i++)T[(c|RomKan._ba[i])]=k?((ia[i]<<8)|k):(ia+i);},kata_to_hira:function(s){var ja=[];var l=s.length;for(var i=0;i<l;i++){var k=this._aa.indexOf(s.charAt(i));ja.push((k<0)?s[i]:this.K(k));} 
     2var RomKan={KANA_TBL:"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをぁぃぅぇぉゃゅょっがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽんヴゎ",K:function(i){return this.KANA_TBL.charAt(i)},_aa:"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲァィゥェォャュョッガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポンヴヮ",LOOKUP:{6409:2,1509397:3,5909:3,769:6,789:8,4373:8,783:10,777:12,1247241:12,773:14,198665:17,1315605:18,1557:28,6401:36,6421:37,6405:13058,6415:38,4609:39,4617:40,4629:41,4613:42,4623:43,5889:44,5897:12547,5893:13059,5903:47,3073:48,6145:48,3081:49,6153:49,792841:49,1579273:49,3093:50,6165:50,3077:51,6149:51,792837:51,1579269:51,3087:52,6159:52,792833:53,1579265:53,792853:54,1579285:54,792847:55,1579279:55,792321:84,1578753:84,791573:56,1578005:56,3598:82,1793:57,1801:58,1813:59,1797:60,1807:61,6657:62,6665:63,2569:63,6677:64,6661:65,6671:66,1025:67,1033:68,1045:69,1029:70,1039:71,513:72,521:73,533:74,517:75,527:76,4097:77,4105:78,4117:79,4101:80,4111:81,4353:12296,4361:12552,4357:13064,4367:13320,726785:12296,1247233:13580,1247253:13836,1247237:13068,1247247:14092,198657:13585,198677:13841,198661:13073,198671:14097,1312769:13587,1312777:12563,1312789:13843,1312773:13075,1312783:14099,1315585:12306,1315593:12562,1315589:13074,1315599:13330,1537:12316,1545:12572,1541:13084,1551:13340,2561:13631,2581:13887,2565:13119,2575:14143,1513737:45,1513733:46,1509377:12291,1509385:12547,1509381:13059,1509391:13315,264193:13638,264201:12614,264213:13894,264197:13126,264207:14150,5633:12371,5641:12627,5653:83,5637:13139,5647:13395},_ba:[1,9,21,5,15],_ca:[53,49,54,51,55],_da:[48,49,50,51,52],_ea:function(c,k,T,c2,ia){c=(c<<16)|(c2<<8);for(var i=0;i<5;i++)T[(c|RomKan._ba[i])]=k?((ia[i]<<8)|k):(ia+i);},kata_to_hira:function(s){var ja=[];var l=s.length;for(var i=0;i<l;i++){var k=this._aa.indexOf(s.charAt(i));ja.push((k<0)?s.charAt(i):this.K(k));} 
    33return ja.join('');},to_kana:function(s){var ka=s.toUpperCase();var l=ka.length;var la=[];for(var i=0;i<l;i++){var k=ka.charCodeAt(i);k=(k>=65&&k<=90)?(k-64):0;la.push(String.fromCharCode(k));} 
    44this.org=s;this.buf=la.join('')+"\u0000\u0000\u0000";this.res=[];var ma=0;for(var na=1;na;ma+=na)na=this.consume(ma);this._fa();return this.res.join('').replace(/-/g,'\u30fc');},consume:function(oa){if(this.org.length<=oa)return 0;var pa=this.buf;var k=pa.charCodeAt(oa);if(k==12||k==24){var s4=this.org.substring(oa+1,oa+4);if(s4.toLowerCase()=="tsu"){this.res.push('\u3063');return 4;}} 
  • lang/javascript/romkan-mini/romkan-mini.js

    r6955 r9138  
    6060                { 
    6161                        var k = this.KATAKANA_TBL.indexOf(s.charAt(i)); 
    62                         ret.push( (k<0) ? s[i] : this.K(k) ); 
     62                        ret.push( (k<0) ? s.charAt(i) : this.K(k) ); 
    6363                } 
    6464 
  • lang/javascript/romkan-mini/rtest.html

    r1088 r9138  
    1212var inbox = null; 
    1313var outbox = null; 
     14var outbox2 = null; 
    1415 
    1516function _onload() { 
    1617        inbox = document.getElementById("inbox"); 
    1718        outbox = document.getElementById("outbox"); 
     19        outbox2 = document.getElementById("outbox2"); 
    1820} 
    1921 
    2022function onkey() { 
    2123        outbox.firstChild.nodeValue = RomKan.to_kana(inbox.value) 
     24        outbox2.firstChild.nodeValue = RomKan.kata_to_hira(inbox.value) 
    2225} 
    2326                </script> 
     
    2730                        <input onkeyup="void(onkey());" type="text" size="64" id="inbox" /> 
    2831                </p> 
    29                 <p id="outbox">&nbsp;</p> 
     32                RomKan.to_kana<p id="outbox">&nbsp;</p> 
     33                RomKan.kata_to_hira<p id="outbox2">&nbsp;</p> 
    3034        </body> 
    3135</body>